|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请问这几句赋值有什么区别吗??很短!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1039
人关注过本帖
标题:
请问这几句赋值有什么区别吗??很短!
只看楼主
加入收藏
c我我c
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-7-9
第
11
楼
收藏
得分:0
y="a";
是错的,哪能把一个字符赋给一个二级指针呢
*s='a';
是s[0]==a
*(s+2)='a';
是s[3]==a
2010-07-09 15:06
举报帖子
使用道具
赠送鲜花
Jade0709
等 级:
论坛游民
帖 子:14
专家分:15
注 册:2010-7-6
第
12
楼
收藏
得分:0
我想错了,y="a",确实是将字符常量的地址赋给y,即y的指向变了。
2010-07-09 15:58
举报帖子
使用道具
赠送鲜花
Jade0709
等 级:
论坛游民
帖 子:14
专家分:15
注 册:2010-7-6
第
13
楼
收藏
得分:0
以下是引用
c我我c
在2010-7-9 15:06:16的发言:
y="a";
是错的,哪能把一个字符赋给一个二级指针呢
*s='a';
是s[0]==a
*(s+2)='a';
是s[3]==a
y是一级指针,y="a"也没有错。
2010-07-09 16:00
举报帖子
使用道具
赠送鲜花
hao0716
等 级:
业余侠客
威 望:
1
帖 子:353
专家分:222
注 册:2006-4-11
第
14
楼
收藏
得分:0
以下是引用
Jade0709
在2010-7-9 15:05:52的发言:
呵呵,那么请问本例中y指向啥的,看看main函数中的初始化吧。y="a",这个语句y的指向是没有变的,函数传过来的y就是指向一个字符串空间的,y="a",只是把字符串"a"复制到此空间。
呵呵,非也非也,这不是c++有操作符啊。
y是一个char*的指针,当然什么型不是我们讨论的,总之它是一个指针,指针是要指向地址的,
你可以打印一下y的数值是否变化,在y="a"的前后,y的值是不一样的,如果照你所说的把"a"复制到这个空间的话那么y这个值应该是不会变的
顺便一提你也可以试试对于*y是否可以赋值
2010-07-09 16:19
举报帖子
使用道具
赠送鲜花
Jade0709
等 级:
论坛游民
帖 子:14
专家分:15
注 册:2010-7-6
第
15
楼
收藏
得分:0
以下是引用
hao0716
在2010-7-9 16:19:11的发言:
呵呵,非也非也,这不是c++有操作符啊。
y是一个char*的指针,当然什么型不是我们讨论的,总之它是一个指针,指针是要指向地址的,
你可以打印一下y的数值是否变化,在y="a"的前后,y的值是不一样的,如果照你所说的把"a"复制到这个空间的话那么y这个值应该是不会变的
顺便一提你也可以试试对于*y是否可以赋值
是的,我说错了,前面已经说过。
2010-07-09 16:42
举报帖子
使用道具
赠送鲜花
zisefengye
等 级:
职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
第
16
楼
收藏
得分:0
其实这个问题挺让人犯迷糊的,假如你改成*y='b',那么结果完全两样,你去看好了,当y="a"的时候,y的地址是没变,但y地址中存储的地址是改变了,而出了函数体,y中存储的地址又恢复成原来的地址,仿佛y="a"这句从没写过。如果你写成*y = 'a',那么你就是把y指向字符串的首地址的内容改变了,那么这时候s也会随之改变。
2010-07-09 17:27
举报帖子
使用道具
赠送鲜花
16
2/2页
1
2
快速回复:
请问这几句赋值有什么区别吗??很短!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.021262 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved