c++ 2015-11-11 08:09 采纳率: 66.7%
浏览 1463
已采纳

关于字符串数组的长度问题

#include
using namespace std;

int main()
{
int length;
char onearray[6] = {'a','d','r','y','b'};
length = strlen(onearray);
cout << "the length of the array is:" << length << endl;
return 0;
}

如果数组是onearray[5] 则输出的结果15
但是如果数组的下标大于五输出的结果就是5这是为什么?

  • 写回答

4条回答 默认 最新

  • 普通网友 2015-12-04 04:30
    关注

    你还是不知道strlen函数的用法以及它的内部实现,strlen函数获取字符数组长度的底层是找到第一个\0才算为止(当然字符串末尾有'\0',则另当别论)
    。你的char类型数组是在栈上的,你可以去调试看看内存,看看最后一个字符'b'的后面是什么字符,若果不是'\0'就一直往后看,直到找到'\0',算一下
    就可以得到你的答案了...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀