本文对C/C++中字节的玩法进行了详细的总结
第一、获取数据大小方法
sizeof()//操作符,求占用空间,对数组而言大小为 type大小 * 数据个数
int a[] = {1,2,3,4,5}
sizeof(a) = 20
sizeof(&a) = 4特殊的:
在string时,由于字符串本质上就是自带‘\0’结尾的 char[] 数组,而char 的大小有恰好为1,
因此sizeof()就正好会是数组的长度;const char a[] = "abcdefghi";
cout << sizeof(a) << endl; // 10在C++98中是不允许对类的非静态成员变量使用sizeof()的,而在C++11中是合法的;
根据 C99 规定,sizeof是一个编译时刻就起效果的运算符,运行时在其内的任何运算都没有意义;int i = 10;
sizeof(i++); // 4 此时i=10, 并不会自加,里面的运算是无意义的;
int size = sizeof(Volume) / sizeof(Volume[0]); // Volume[0]并不起作用,只看其类型strlen() 在对字符串计算时 以遇到'\0'结束符为准,
不包含末尾的'\0' 字符(或内存中的内容为0)的长度的;
.length() (容器)字符串的长度,不包含结尾的'\0';
.size() (容器)字符串的长度,同样是不包含结尾的'\0';strcpy() 拷贝函数其实是从指定位置覆盖,再加上‘\0’,而用%s输出就到'\0'为止。
会在 最后自动 添加 '\0' 作为结束符,,下面给出实践:
例题1:char dog[]="wang\0miao";cout << sizeof(dog) << endl; // 10cout << strlen(dog) << endl; // 4 例题2 char str[] = "ab\012\\n";printf("%d \n", si