滨州seo招聘,网站排名优化是怎么做的,合肥360seo排名,金融交易网站开发前言 欢迎阅读本篇文章#xff01;本篇文章通过一个笔试题来加强我们对C语言的理解#xff0c;希望对你有帮助。后续我会写一个栏目#xff0c;集合我见到的C语言题目#xff0c;进行分析讲解。
1、题目一 判断下面程序的输出结果#xff1a;(下面说的地址4/8字节是因为对…前言 欢迎阅读本篇文章本篇文章通过一个笔试题来加强我们对C语言的理解希望对你有帮助。后续我会写一个栏目集合我见到的C语言题目进行分析讲解。
1、题目一 判断下面程序的输出结果(下面说的地址4/8字节是因为对于不同的编译环境地址的大小不同32位环境为4字节64位环境为8字节)
#include stdio.h
int main()
{int a[] { 1,2,3,4 };printf(%d\n, sizeof(a)); printf(%d\n, sizeof(a 0)); printf(%d\n, sizeof(*a)); printf(%d\n, sizeof(a 1)); printf(%d\n, sizeof(a[1])); printf(%d\n, sizeof(a)); printf(%d\n, sizeof(*a)); printf(%d\n, sizeof(a 1)); printf(%d\n, sizeof(a[0])); printf(%d\n, sizeof(a[0] 1)); return 0;
} 我们可以尝试去写出这些代码的输出结果然后我将放出答案参照答案看是否有不同。
1.2结果 这个结果是否符合你的预期呢
1.3 分析 我们对语句进行逐一分析 printf(%d\n, sizeof(a)); //16 sizeof数组名数组名表示整个数组计算的是整个数组的大小单位是字节 printf(%d\n, sizeof(a 0)); //4 a不是单独放在sizeof内部也没有取地址所以a就是首元素的地址a0还是首元素的地址只要是地址大小就是4/8个字节 printf(%d\n, sizeof(*a)); //4 这里的a表示的是首元素的地址*a表示首元素首元素为整形大小为4字节 printf(%d\n, sizeof(a 1)); //4 a是首元素的地址a1是第二个元素的地址大小为地址的大小为4/8字节 printf(%d\n, sizeof(a[1])); //4 a[1]为数组第二个元素为整型大小为4四字节 printf(%d\n, sizeof(a)); //4 a取出的是数组的地址地址大小就是4/8字节 printf(%d\n, sizeof(*a)); //16
这个重点讲一下a和先结合成为一个指向整个数组的指针然后*访问它访问出来一整个数组因此大小为整个数组的大小为16
printf(%d\n, sizeof(a 1)); //4 a1还是一个地址地址大小还是4/8只不过这里加1直接跳过整个数组指向了数组后面一个地址。
printf(%d\n, sizeof(a[0])); //4
a[0]是数组首元素a[0]取出首元素的地址所以大小为int类型大小4字节 printf(%d\n, sizeof(a[0] 1)); //4
a[0]是首元素地址a[0]1是第二个元素的地址大小为int类型大小4字节
2、题目二
#include stdio.h
int main()
{char arr[] { a,b,c,d,e,f };printf(%d\n, sizeof(arr));printf(%d\n, sizeof(arr 0));printf(%d\n, sizeof(*arr));printf(%d\n, sizeof(arr[1]));printf(%d\n, sizeof(arr));printf(%d\n, sizeof(arr 1));printf(%d\n, sizeof(arr[0] 1));return 0;
} 同样地先自己算算吧有了上面的案例我相信你做这道题的正确率会提高很多。
2.1 结果 下面进行分析
2.2 分析
printf(%d\n, sizeof(arr)); //6数组名单独放在sizeof内部表示整个数组的大小为6
printf(%d\n, sizeof(arr 0)); //4
arr 0 是数组首元素的地址大小为4/8字节
printf(%d\n, sizeof(*arr)); //1 *arr就是首元素大小是char类型的大小为1
printf(%d\n, sizeof(arr[1])); //1arr[1]同样为数组的首元素大小为char类型的大小1字节
printf(%d\n, sizeof(arr)); //4 arr是数组地址是地址就是4/8字节
printf(%d\n, sizeof(arr 1)); //4
arr 1指向整个数组后面一个位置的地址也还是地址是地址大小就是4/8字节
printf(%d\n, sizeof(arr[0] 1)); //4 a[0]是数组第一个元素的地址1指向第二个元素还是地址大小为4/8字节
3、结语 这样两道题目就分析完了希望对你有所帮助。