第一题是D,形参是传递到函数里面去的参数,和第二题不太一样,但是相同点是都说明了二维数组的数组名是指向第零行的起始地址的。
第二题,p相当于一个二维数组,因为*p是相当于一维数组p的起始元素。
p=s使p指向s的第零行的第零个元素'a'的地址,然后*(p[0]+1)也就是第0行的第二个元素'b'。
1、仅仅使用数组名称,并不带有任何其他修饰时,必然是指该数组的首地址。
所以第一张图答案是D。
2、图二、这题有点奇怪,是改错吗?
第一,iostream这个头文件是没有.h的,根据用<>的方式搜索,他应该不会搜索用户自定义头文件。
第二、下面没有用using指令或指示符就直接使用cout了,姑且当那头文件是标准头文件吧。
第三、char数组s的声明是2X3,那按道理不应该是{{'a','b','c'},{'d','e','f'}};吗?姑且按照内存保存方式,把这6个字符按照其自身顺序排序下去。即无错。
---声明一个字符变量名为时c,声明一个c风具有3个字符空间字符串变量p;
---声明一个2X3的字符数组s,并初始化为{}内的字符。
---把变量s的地址复制给p,假设s为00FFBB,那么赋值后p就是00FFBB
---把p地址+1字节(char大小)的地址解引用并赋值给c,即现在c是00FFBC
---输出c,即输出的会是字符'b'。
这个程序通过把p的地址改变到指向连续地址的数组的首地址来访问后续的部分,如果喜欢,p可以加到5都还是正确输出。
简单答案:
1、D。
2、输出 "b" 字符。
第一张图是D