c语言指针问题
已知:charc[8]="beijing",*s=c;inti;则下面的输出语句中,错误的是_____。选择一项:A.printf("%s\n",s);B.for(i=0...
已知:char c[8] = "beijing", *s = c; int i; 则下面的输出语句中,错误的是 _____。
选择一项:
A. printf("%s\n", s);
B. for (i = 0; i < 7; i++) printf("%c", s[i]);
C. printf("%s\n", *s);
D. for (i = 0; i < 7; i++) printf("%c", c[i]);
答案选C.
有几个点不理解。第一,刚学的指针,我的理解就是指针指向地址,然后地址是一串数字,可为什么这个题是 char *s。
第二,s是指向c 的指针,那不是应该指向c0的地址吗,为什么A选项输出是对的。
第三,我根据答案倒着推,意思是s就是一个和c一模一样的字符数组了?那s前面的*是干嘛的。。。
以上,我可能没认真听吗。。。。。。。 展开
选择一项:
A. printf("%s\n", s);
B. for (i = 0; i < 7; i++) printf("%c", s[i]);
C. printf("%s\n", *s);
D. for (i = 0; i < 7; i++) printf("%c", c[i]);
答案选C.
有几个点不理解。第一,刚学的指针,我的理解就是指针指向地址,然后地址是一串数字,可为什么这个题是 char *s。
第二,s是指向c 的指针,那不是应该指向c0的地址吗,为什么A选项输出是对的。
第三,我根据答案倒着推,意思是s就是一个和c一模一样的字符数组了?那s前面的*是干嘛的。。。
以上,我可能没认真听吗。。。。。。。 展开
5个回答
展开全部
第一,指针类型的变量(以下称指针变量)是用来保存地址的,指针变量的类型决定了它可以保存哪种类型的变量的地址。char *s说明s可以用来保存一个char类型的变量的地址(char *是s的类型,说明s可以保存一个char类型的变量的地址)。
第二,s是指向c[0]的,即s保存的是c[0]的地址(s的值是c[0]的地址),对于A. printf("%s\n", s);%s说明是输出一个以'\0'结尾的字符串,字符串的起始地址在s中,而beijing只有7个字符,数组c分配了8个字节的空间,所以有空间容纳自动添加的'\0',所以A正确。
第三,*是用来说明s是指针类型的。
第二,s是指向c[0]的,即s保存的是c[0]的地址(s的值是c[0]的地址),对于A. printf("%s\n", s);%s说明是输出一个以'\0'结尾的字符串,字符串的起始地址在s中,而beijing只有7个字符,数组c分配了8个字节的空间,所以有空间容纳自动添加的'\0',所以A正确。
第三,*是用来说明s是指针类型的。
展开全部
指针是地址,而不是指向地址,指针指向它的值(地址编号)里存放的变量。printf在%s控制下需要一个char *型指针与对应,一个一个地输出从这个指针开始的字符值,直到遇到'\0'时停止。C选项中的*s是c数组的第一个元素即字母b的值,所以错误。写成s就对了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已知:char c[8] = "beijing", *s = c; int i; 则下面的输出语句中,错误的是 _____。
选择一项:
A. printf("%s\n", s);
B. for (i = 0; i < 7; i++) printf("%c", s[i]);
C. printf("%s\n", *s); //s是指向字符串的指针,而*s则为s指向的第一个字符,而与*s配合的输出格式是%s,显然配合失当,就是说,C是错误的。
D. for (i = 0; i < 7; i++) printf("%c", c[i]);
追问
那B选项为什么不是*s[i]而是s[i].
追答
s[i]是一个字符,与%c配合适当,是对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要涉及运算顺序,赋值运算是最低等级的
int
a,k=4,m=6,*p=&k,p2=&m
;
a=p==&m;
指针p的内容是变量k的地址
p==&m
这个是判断
p的内容是不等于变量m的地址
所以,结果是0
最后再赋值给a
a=0
int
a,k=4,m=6,*p=&k,p2=&m
;
a=p==&m;
指针p的内容是变量k的地址
p==&m
这个是判断
p的内容是不等于变量m的地址
所以,结果是0
最后再赋值给a
a=0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
30分钟彻底学会C语言指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询