定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C)p=s[0]; D)k=s

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 15:10:49
定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C)p=s[0]; D)k=s

定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C)p=s[0]; D)k=s
定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C)p=s[0]; D)k=s

定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C)p=s[0]; D)k=s
对于答案是C的原因:
s是字符类型的二维数组、k是指向字符类型数组的指针(是数组指针)、p是字符类型的指针.
所以,看答案可以知
A)错:因为s为数组,而p是字符指针.类型不对应.
B)错,原因同A)
D)错,s实际是char类型的二维数组的头地址.而k是指向char类型的一维数组的指针.
具体看c++指针部分.