char数组的sizeof
- 在牛客网上做到一道题:
设有定义
char str[ ] =”Hello”;
则语句
printf(“%d %d”,sizeof(str),strlen(str));
的输出结果是?
正确答案是6和5,后面一个不解释,题解是说sizeof会包括‘/0’的。 - 于是我写了一份代码:
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
int main(void)
{
char a[11]="hello";
char s[] = "hello";
cout<<sizeof(a)<<endl;
cout<<sizeof(s)<<endl;
}
得到的结果分别是11和6,也就是说对于固定大小的char数组,sizeof就不包括‘/0’,而是其固定分配的内存大小了。 - 个人理解,如有错误,还望指教。