搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这段程序为什么不对
标题:
这段程序为什么不对
只看楼主
longxies
等 级:
新手上路
帖 子:113
专家分:0
注 册:2007-11-14
楼主
问题点数:0 回复次数:7
这段程序为什么不对
main()
{
char a[10],*p=a;
p="123456789";
printf("%s",a);
}
p是a的指针,给p赋值就是给a赋值为什么输出乱码呢?
搜索更多相关主题的帖子:
赋值
main
char
printf
2008-02-01 10:28
jackys2006
等 级:
新手上路
帖 子:195
专家分:0
注 册:2006-3-10
第
2
楼
得分:0
这个语句不对:
p="123456789";
p只是一个指针,没有给它分配内存空间,
你把字符串赋值给它,
它是没地方放的,所以会输出乱码。
2008-02-01 11:17
longxies
等 级:
新手上路
帖 子:113
专家分:0
注 册:2007-11-14
第
3
楼
得分:0
p是a[10]的指针,给p赋值就是给a赋值,它的值存于a中,p="123456789";,赋值并没错啊!!
2008-02-02 15:54
chmlqw
等 级:
新手上路
帖 子:180
专家分:0
注 册:2007-10-11
第
4
楼
得分:0
P是指针,是地址
而"123456789"是指针的指向的内容
所以不能把内容赋值给指针...
2008-02-02 19:01
雨中飞燕
等 级:
禁止访问
威 望:
8
帖 子:2200
专家分:0
注 册:2007-8-9
第
5
楼
得分:0
[bo]以下是引用 [un]chmlqw[/un] 在 2008-2-2 19:01 的发言:[/bo]
P是指针,是地址
而"123456789"是指针的指向的内容
所以不能把内容赋值给指针...
你错了,p="123456789"在语法上是可以的,
"123456789"相当于一个数组名,
p = 数组名; 就是把数组首地址给p
但要注意,a的内容并没有变
2008-02-02 19:26
hongwu147
等 级:
新手上路
帖 子:47
专家分:0
注 册:2008-2-2
第
6
楼
得分:0
给p赋值,应该这样
*p=123456789
2008-02-02 19:30
雨中飞燕
等 级:
禁止访问
威 望:
8
帖 子:2200
专家分:0
注 册:2007-8-9
第
7
楼
得分:0
[bo]以下是引用 [un]hongwu147[/un] 在 2008-2-2 19:30 的发言:[/bo]
给p赋值,应该这样
*p=123456789
这是给p所指向的空间赋值,而不是给p
2008-02-02 19:37
longxies
等 级:
新手上路
帖 子:113
专家分:0
注 册:2007-11-14
第
8
楼
得分: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
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-199251-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016841 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved