标题:这段程序为什么不对
取消只看楼主
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
 问题点数:0 回复次数:2 
这段程序为什么不对
main()
{
 char a[10],*p=a;
 p="123456789";
 printf("%s",a);
}
p是a的指针,给p赋值就是给a赋值为什么输出乱码呢?
搜索更多相关主题的帖子: 赋值 main char printf 
2008-02-01 10:28
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
得分:0 
p是a[10]的指针,给p赋值就是给a赋值,它的值存于a中,p="123456789";,赋值并没错啊!!
2008-02-02 15:54
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
得分:0 
[bo]以下是引用 [un]雨中飞燕[/un] 在 2008-2-2 19:26 的发言:[/bo]


你错了,p="123456789"在语法上是可以的,
"123456789"相当于一个数组名,
p = 数组名; 就是把数组首地址给p
但要注意,a的内容并没有变

谢谢我明白了
程序中我先后用了两个p=a,p="123456789"相当于给p指针变量副了两次值,a[10]我只是定义了没赋值是吗???

[[it] 本帖最后由 longxies 于 2008-2-2 20:10 编辑 [/it]]
2008-02-02 20:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-199251-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.181827 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved