C语言—指针4
1.以下程序运行的结果是什么?
输出结果:在x64环境下输出,指针大小为8个字节
2.以下程序输出的结果是什么?
输出结果:在x64环境下输出,指针大小为8个字节
3.以下程序输出的结果是什么?
输出结果
无法正常的输出全部结果,因为第三次打印时传递的strlen函数接收的地址不是真实的地址,导致程序终止,可以调试观察,按F10进入调试,打开监视窗口,按F10逐过程观察。
因此传递给strlen的指针不能直接将字符元素直接传递,否则将导致程序终止。
4.以下程序的输出结果是什么?
输出结果:在x64的环境下输出,指针大小为8个字节
5.以下程序输出的结果是什么?
结果程序在x64环境下输出
将数组元素当作地址导致程序终止,将对于的错误语句注释后输出
6.以下程序输出的结果是什么?
在x64的环境下输出,指针大小为8字节
7.以下程序的输出结果是什么?
输出结果
将错误的语句注释后输出
8.以下程序输出的结果是什么?
输出结果:在x64的环境下输出
sizeof使用时大部分情况下代表首元素地址,在二维数组中首元素地址是首行元素地址。
sizeof不代表首元素地址的两种情况
1.在数组名前加上取址操作符(&),此时取出的是整个数组的地址;
2.数组名单独放在sizeof内部,此时的数组名是代表整个数组,求出整个数组的大小,在sizeof内部对数组名取地址时,同时解引用操作,也是表示数组名单独放在sizeof内部,sizeof(*&arr)=sizoef(arr);
srtrlen是一个求字符串的库函数,使用时需要包含头文件:#include<string.h>,求出的是字符串'\0‘前字符的个数,返回值为size_t(无符号整型),参数需要一个起始地址,该地址必须是真实有效的,不然程序会中断;strlen一般是用来求字符串长度的,需要以’\0'作为终止信号,如果没有‘\0',求出的可能是随机值。
9.指针笔试题
9.1 程序的结果是什么?
输出结果
9.2 在X86环境下,假设结构体的⼤⼩是20个字节,程序输出的结果是啥?
在x86的环境下输出输出结果
9.3.以下程序输出的结果是什么?
输出结果
9.4以下程序输出的结果是什么?
输出结果
9.5 以下程序输出的结果是什么?
在x86的环境下输出
9.6 以下程序输出的结果是什么?
输出结果
9.7 以下程序输出的结果是什么?
输出结果
起始指向“
第一条printf语句:
第二条printf语句:
第三条printf语句:
第四条printf语句: