定义语句: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)[3] 改为(*k)[10],D项对吗???对,那样正确。为什么呢?谢谢(*k)[10]意思就是k是指向元是10个字符型的数组。而s[3][10]的内存存储形式就是s是指向3个元素的数组,且此处的元是10个字符型的,不知道我说清楚了没有?呵呵