有char a[4]="xy";char*p;执行了语句p=a之后,*(p+2)的值是( )。

admin2019-04-24  25

问题 有char a[4]="xy";char*p;执行了语句p=a之后,*(p+2)的值是(    )。

选项 A、’B’
B、’\0’
C、不确定
D、字符’B’的地址

答案B

解析 在C语言中定义数组指定的是元素的个数,因此a[4]定义了一个含4个元素的数组。对于字符数组,数组名a实际上是指向该串第一个元素a[0]的指针,即其值为&a[0],在执行了语句p=a之后,p指向a[0],而木(p+2)的含义为:指针p加上偏移2,从而指向a[2],然后取a[2]的值。由于C语言中任何字符串都必须以一个’\0’字符串结束,因而声明char a[3]="AB";实际上隐含赋值a[2]=’\0’。所以正确答案是B)。
转载请注明原文地址:https://kaotiyun.com/show/HhRp777K
0

最新回复(0)