您的位置:首页 > 娱乐 > 八卦 > 网络营销是什么时候引进中国的_安徽阜阳疫情最新消息_长沙哪里有网站推广优化_网站流量数据

网络营销是什么时候引进中国的_安徽阜阳疫情最新消息_长沙哪里有网站推广优化_网站流量数据

2025/7/11 16:40:53 来源:https://blog.csdn.net/2501_90303633/article/details/146460509  浏览:    关键词:网络营销是什么时候引进中国的_安徽阜阳疫情最新消息_长沙哪里有网站推广优化_网站流量数据
网络营销是什么时候引进中国的_安徽阜阳疫情最新消息_长沙哪里有网站推广优化_网站流量数据

sizeof 

上习题,不知道大家发现与上一张的习题在哪里不一样嘛?

int main() 
{char arr[] = "abcdef";printf("%zd\n", sizeof(arr));printf("%zd\n", sizeof(arr + 0));printf("%zd\n", sizeof(*arr));printf("%zd\n", sizeof(arr[1]));printf("%zd\n", sizeof(&arr));printf("%zd\n", sizeof(&arr + 1));printf("%zd\n", sizeof(&arr[0] + 1));return 0;
}

对喽!

上一个是

char arr[]={'a','b','c','d','e'};

大家可以在计算一下,巩固知识点啦。 

欧克,上答案

如下:

1.  arr表示整个数,计算的是整个数组的大小单位字节,7*1 = 7

2. arr就是数组首元素地址,  arr+0还是数组首元素的地址  4  /  8(在不同环境下)

3. arr就是数组首元素的地址,*arr是首元素,大小就是1个字节

4. arr[1]数组的第二个元素,计算的就是第二个元素的大小,单位是字节 - 1

5.arr表示整个数组,&arr取出的是整个数组的地址,是地址大小就是  4  / 8个字节

6. &arr + 1是跳过这个数组后的地址,是地址大小就是 4 /  8个字节 

7. &arr[0]是数组首元素的地址,&arr[0]+1是数组第二个元素的地址:4  / 8 

strlen

习题与sizeof一样,在这里放一起更好的比较一下。

int main()
{	
char arr[] = "abcdef";printf("%zd\n", strlen(arr));printf("%zd\n", strlen(arr + 0));printf("%zd\n", strlen(*arr));printf("%zd\n", strlen(arr[1]));printf("%zd\n", strlen(&arr));printf("%zd\n", strlen(&arr + 1));printf("%zd\n", strlen(&arr[0] + 1)); return 0;
}

答案公布:

1.  6: arr是数组首元素的地址,从第一个元素开始,统计\0之前字符的个数

2. 6:arr是数组首元素的地址,arr+0还是数组首元素的地址,结果同上

3.非法访问内存,导致程序崩溃

4.arr[1]是第二个元素 == 'b' == 98, 道理同上,非法访问内存,导致程序崩溃

5.6:&arr取出的是数组的地址,数组的地址和首元素的地址是同一个值

6. 随机值

7.5:&arr[0] + 1是第二个元素的地址,\0之前有5个元素

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com