设有如下定义:char *aa[ ]={“abcd”,“ABCD” };则以下说法正确的是
A aa 数组成元素的值分别是"abcd"和"ABCD"
B aa是指针变量,它指向含有两个数组元素的字符型一维数组
C aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D aa 数组的两个元素中各自存放了字符‘a’和“A”的地址
这道题一开始有点晕 ,被指针变量这几个字整晕的。首先,我看作业帮上面好几个版本答案错的。
正确解释:D
这种定义方式:char * aa[2]定义的是一个指针数组,数组的成员是字符指针,而非字符串数据。
在这里,数组中的两个字符指针,分别指向了常量字符串"abcd"和"ABCD",换句话说,这两个指针的值就是这两个字符串的首地址。
A.数组中元素的值不是字符串,而是字符串"abcd"和"ABCD"的首地址
B.aa是指针数组,不是指针变量(aa是数组名字,aa[i]才是指针变量)
C.因为字符串隐含的有’\0’字符,作为结束,所以应该是含有5个字符的一维数组。