郓城做网站网络公司,亚马逊展示型广告,江门网站建设,泰安千橙网站建设1.char arr[] {a,b,c,d,e,f};
sizeof分析类型就可以计算所占的内存空间的大小#xff1b; #xff08;1#xff09;printf(%d\n, sizeof(arr));
数组名单独放进里面#xff0c;计算整个数组大小#xff0c;所以是6字节#xff1b; #xff08;2#xff…1.char arr[] {a,b,c,d,e,f};
sizeof分析类型就可以计算所占的内存空间的大小 1printf(%d\n, sizeof(arr));
数组名单独放进里面计算整个数组大小所以是6字节 2printf(%d\n, sizeof(arr0));
第一个元素地址是地址就是4或8不会因为 是char类型而想成是1因为无论是什么类型地址的大小是不变的就是4或8 3printf(%d\n, sizeof(*arr));
首元素地址解引用后是第一个元素char类型1字节 4printf(%d\n, sizeof(arr[1]));
第二个元素类型char大小是1字节 5printf(%d\n, sizeof(arr));
数组地址4或8字节 6printf(%d\n, sizeof(arr1));
还是地址虽然跳过整个数组是地址就是4或8 7printf(%d\n, sizeof(arr[0]1));
第二个元素地址4或8字节
-----------------------------------------------------------------------------------------------------------------
2.char arr[] {a,b,c,d,e,f}; 1printf(%d\n, strlen(arr));
求字符串的长度统计字符串斜杠0之前的字符个数字符数组里面无斜杠0会一直向后面找答案是随机值 2printf(%d\n, strlen(arr0));
这个还是从第一个向后找所以是随机值 3printf(%d\n, strlen(*arr));
strlen参数是地址根据提供的地址向后找*arr是首元素解引用就是字符aASCII值是97会从97地址处开始找所以是非法访问非法访问97地址处的数值 4printf(%d\n, strlen(arr[1]));
这个传递的参数同上是98地址非法访问 5printf(%d\n, strlen(arr));
chat(*)[6]转换成char*类型数组的地址和首个元素地址值相同依然是从第一个元素位置开始找所以是随机值 6printf(%d\n, strlen(arr1));
跳过整个数组还是地址从最后开始找是随机值 7printf(%d\n, strlen(arr[0]1));
从第二个元素的地址处往后找是随机值
这些随机值不是没有规律的他们之间相差的是对应的字符的个数
---------------------------------------------------------------------------------------------------------------------------------
3.char arr[] abcdef;
这里的末尾有了斜杠0 1printf(%d\n, sizeof(arr));
7个字节
---------------------------------------- 2printf(%d\n, sizeof(arr0));
首元素地址4/8
--------------------------------------------- 3printf(%d\n, sizeof(*arr));
首个元素1字节
-------------------------------------------- 4printf(%d\n, sizeof(arr[1]));
第二个元素1字节
------------------------------------------------ 5printf(%d\n, sizeof(arr));
整个数组地址4/8
---------------------------------------------- 6printf(%d\n, sizeof(arr1));
还是地址4/8
---------------------------------------------- 7printf(%d\n, sizeof(arr[0]1));
还是地址4/8
---------------------------------------------------------------------------------------------------------------------------------
4.char arr[] abcdef; printf(%d\n, strlen(arr));
6字节
------------------------------------- printf(%d\n, strlen(arr0));
6字节
-------------------------------------- printf(%d\n, strlen(*arr));
第一个元素是字符a,这个是错误
---------------------------------------- printf(%d\n, strlen(arr[1]));
第二个元素字符b,这个是错误
--------------------------------------------- printf(%d\n, strlen(arr));
数组地址6字节
------------------------------------------- printf(%d\n, strlen(arr1));
跳过整个数组也跳过了斜杠0是随机值
------------------------------------------- printf(%d\n, strlen(arr[0]1));
跳过第一个字符5字节
--------------------------------------------------------------------------------------------------------------------------------
5.char *p abcdef;
这里p指向第一个元素地址 printf(%d\n, sizeof(p));
是地址就是4/8字节
------------------------------------ printf(%d\n, sizeof(p1));
指向b字符还是地址是4/8字节
----------------------------------- printf(%d\n, sizeof(*p));
访问a字符大小是1字节
------------------------------------ printf(%d\n, sizeof(p[0]));
*p0)相当于*p是1字节
------------------------------------ printf(%d\n, sizeof(p));
是地址p是二级指针是p所在处的地址地址是4/8
-------------------------------------- printf(%d\n, sizeof(p1));
还是地址是4/8字节 -------------------------------------- printf(%d\n, sizeof(p[0]1));
指向字符b是地址是4/8字节
---------------------------------------------------------------------------------------------------------------------------
6.char *p abcdef; printf(%d\n, strlen(p));
从a开始,6字节
----------------------------------- printf(%d\n, strlen(p1));
从b开始5字节
----------------------------------- printf(%d\n, strlen(*p));
非法访问97地址处的内存错误的
---------------------------------------------- printf(%d\n, strlen(p[0]));
*p0),还是a是错误的
--------------------------------------------- printf(%d\n, strlen(p));
是随机值
---------------------------------------------- printf(%d\n, strlen(p1));
也是随机值 --------------------------------------------------- printf(%d\n, strlen(p[0]1));
从b开始找所以是4字节