c语言 char s【3】【10】,(*k)【3】,*p;则以下赋值语句正确的是 a)p=s
c语言chars【3】【10】,(*k)【3】,*p;则以下赋值语句正确的是a)p=sb)p=kc)p=s【10】d)k=s答案是c怎么得出...
c语言 char s【3】【10】,(*k)【3】,*p;则以下赋值语句正确的是 a)p=s b)p=k c)p=s【10】 d)k=s 答案是c怎么得出
展开
3个回答
展开全部
估计你应该是二维数组与指针分不清楚,分析如下:
char s[3][10]; //先看s[3],s包含3个元素的数组,即s为指向3个元素的指针,3个元素分别为s+0,s+1,s+2; 再看右边的[10],说明这个3个元素中,每个元素又包含10个元素,即(s+0)[0]、(s+0)[1]....(s+0)[9],(s+1)[0]、(s+1)[1]....(s+1)[9],(s+2)[0]、(s+2)[1]....(s+2)[9];从整体看s[3]为指针,即char*,s[3][10]为具体的值,即char。那么(s+0)[0]、(s+0)[1]....(s+0)[9],(s+1)[0]、(s+1)[1]....(s+1)[9],(s+2)[0]、(s+2)[1]....(s+2)[9];是具体的30个char;二维数组就是指向指针的指针,即char **s;
分析结果:
A. p=s; //错,p为指向char的指针,而s为指向指针的指针,char **;
B. p=k; //错,p为指向char的指针,而k为指向含有三个元素的数组,其实可k也是char **;
C. p=s[10]; //错,p为指向char的指针,s[10] <=> (s+0)[10]是一个字符,但是s[10]越界了,所以这个也是错误的.
D. k=s; //错,看AB的分析,也许你认为是对的,都是char**,但是他们指向的元素不同,k指向的是包含3个元素的数值,而s指向的是包含10元素的数组,所以不正确.
总结:数组的名字就是首地址,分析指针或数组,通过优先级来分析.以上没有正确答案.
char s[3][10]; //先看s[3],s包含3个元素的数组,即s为指向3个元素的指针,3个元素分别为s+0,s+1,s+2; 再看右边的[10],说明这个3个元素中,每个元素又包含10个元素,即(s+0)[0]、(s+0)[1]....(s+0)[9],(s+1)[0]、(s+1)[1]....(s+1)[9],(s+2)[0]、(s+2)[1]....(s+2)[9];从整体看s[3]为指针,即char*,s[3][10]为具体的值,即char。那么(s+0)[0]、(s+0)[1]....(s+0)[9],(s+1)[0]、(s+1)[1]....(s+1)[9],(s+2)[0]、(s+2)[1]....(s+2)[9];是具体的30个char;二维数组就是指向指针的指针,即char **s;
分析结果:
A. p=s; //错,p为指向char的指针,而s为指向指针的指针,char **;
B. p=k; //错,p为指向char的指针,而k为指向含有三个元素的数组,其实可k也是char **;
C. p=s[10]; //错,p为指向char的指针,s[10] <=> (s+0)[10]是一个字符,但是s[10]越界了,所以这个也是错误的.
D. k=s; //错,看AB的分析,也许你认为是对的,都是char**,但是他们指向的元素不同,k指向的是包含3个元素的数值,而s指向的是包含10元素的数组,所以不正确.
总结:数组的名字就是首地址,分析指针或数组,通过优先级来分析.以上没有正确答案.
展开全部
首先p是一个char* 指针,而s是一个二维char*指针相当与char**所以排除a
(*k)[3]这是一个数组指针,b选项类型不一致
d选项 k是数组指针,s是二维指针类型不一致排除
只有c选项p和s[10]都是都是char*指针
有问题请追问
(*k)[3]这是一个数组指针,b选项类型不一致
d选项 k是数组指针,s是二维指针类型不一致排除
只有c选项p和s[10]都是都是char*指针
有问题请追问
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char s[3][10]; //这是一个二维数组,对应的二维指针为(*k)[10],所以A、B错
p=s[10]是指向行的首地址的指针,相等于p=s[0][10],也是指向s[3][10]的指针,所以C对
没有k=s这种表示方法
p=s[10]是指向行的首地址的指针,相等于p=s[0][10],也是指向s[3][10]的指针,所以C对
没有k=s这种表示方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询