为了账号安全,请及时绑定邮箱和手机立即绑定

c语言指针问题

c语言指针问题

C
呼唤远方 2019-04-09 05:04:37
已知: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前面的*是干嘛的。。。以上,我可能没认真听吗。。。。。。
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

指针是地址,而不是指向地址,指针指向它的值(地址编号)里存放的变量。printf在%s控制下需要一个char *型指针与对应,一个一个地输出从这个指针开始的字符值,直到遇到'\0'时停止。C选项中的*s是c数组的第一个元素即字母b的值,所以错误。写成s就对了。

查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 688 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信