找回密码
 立即注册
收起左侧

c 数组中&问题?

5
回复
8845
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2013-10-18 11:04:27 显示全部楼层 |阅读模式
1Qter豆
char a[];
scanf("%s",a);与scanf("%s",&a);有区别吗?

最佳答案

查看完整内容

数组名就是数据的首地址
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-10-18 11:04:28 显示全部楼层
数组名就是数据的首地址
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-10-18 16:17:37 显示全部楼层
C语言基础不行吧,这里肯定用前者
比如 int a;scanf("%d",&a);你看这是把值放到地址里面去的
char a[];
为什么是scanf("%s",a);呢?
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-10-18 16:18:43 显示全部楼层
因为a在这已经是指针了………………所以……
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2013-10-18 17:37:18 显示全部楼层
a408815041 发表于 2013-10-18 16:18
因为a在这已经是指针了………………所以……

但是我用这两种方法好像都没错哦,在qt中运行结果相同
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-20 11:35:44 显示全部楼层
不知道为什么会对这个问题有疑问?
%s 参数为 char *!
你加上&a. 之后就会变成char *[]; 也就是变成了指针数组.   虽然打印没有错误..但是你使用%p打印下地址..就会发现地址是不一样的..    也就是说使用&a后、程序运行的时候申请的地址会变大.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了