C++的sizeof()是运算符函数,在编译时就能并且已经确定了其参数(内置类型或自定义类型的变量或数组类型)所占字节数,
strlen()是取字符串
char cstr2[16]; //在定义时就该为'\0'终止符留下位置
cstr2[5] = '\0';
cout << "sizeof(cstr2[16] cstr2[15]=\0)=" << sizeof(cstr2) << endl; //16 是定义char字符数组类型时确定的字节数
cout << "strlen(cstr2[16] cstr2[15]=\0)=" << strlen(cstr2) << endl; //5 char字符个数不包括'\0'(遇'\0'停止查找)
cout << cstr2 << endl; //烫烫烫烫烫烫烫 局部非静态变量未全部初始化时为随机值 共有0~14共15个字节 输出7个烫是14个字节?
wchar_t cstr4[20];
cstr4[5] = '\0';
cout << sizeof(cstr4) << endl; //40 是定义宽字符数组类型时确定的字节数 宽字节
cout << wcslen(cstr4) << endl; //5 宽字符个数不包含'\0' (遇'\0'停止查找)
cout << cstr4 << endl; //0042F3A8 是个16进制数 随机值 wchar_t数组咋不在控制台窗口输出烫屯的中文字符了?
int narr[16];
cout << "sizeof(int narr[16])=" << sizeof(narr) << endl; //64 是定义整型数组类型时确定的字节数
char cstr3[] = "";
cout << "sizeof(char cstr3[]='' =" << sizeof(cstr3) << endl; //1 包括'\0'终止符 是定义char字符数组类型时确定的字节数
cout << "strlen(char cstr3[]='' =" << strlen(cstr3) << endl; //0 char字符个数不包括'\0'
cout << cstr3 << endl; //输出空
wchar_t cstr6[] = L"";
cout << "sizeof(wchar_t cstr6[]='' =" << sizeof(cstr6) << endl; //2 包括'\0'终止符(此时按宽字节存储) 是定义宽字符数组类型时确定的字节数
cout << "strlen(wchar_t cstr6[]='' =" << wcslen(cstr6) << endl; //0 wchar_t字符个数不包括'\0'终止符
cout << cstr3 << endl; //输出空
char* cstr5 = new char[16];
cstr5[5] = '\0';
cout << sizeof(cstr5) << endl; //4 是定义指向字符的指针类型时确定的字节数
cout << strlen(cstr5) << endl; //5 char字符个数不包括'\0'
cout << cstr5 << endl; //屯屯屯屯屯屯屯 局部非静态变量未全部初始化时为随机值 共0~14共15个字节 输出7个屯是14个字节?
delete []cstr5;