网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月03日
漏签
0
天
c语言吧
关注:
798,663
贴子:
4,345,578
看贴
图片
吧主推荐
视频
游戏
13
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
来来来,讨论下 这种方法可取吗?
只看楼主
收藏
回复
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
两张图对比一下
一周休七日
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
想做什么先
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这张图可以发现,传给myfun函数的实参确实是个地址值,因为程序输出显示函数里指针变量s和主函数里指针变量str 指向了同一地址。
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
问题出在第三张图的第6行,虽然在函数里指针变量指向了和主函数指针变量str同一地址,系统先为字符串"hello world"分配地址,然后再让指针变量s指向这个字符串的首地址,而并没有让str指向这个字符串的首地址,str还是指向原来的地址。所以当在主函数再次输出str指针地址的内容时还是原来的内容。
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如果我们就是要在函数内部对str指向的地址空间的内容进行修改怎么办?
能不能就修改第三张图的第6行为 *s = "hello world"; 显然是不能的,因为如果对指针变量s进行*运算的话 得到的是s指向的hello Beijing 这个字符串的首地址里的第一个字符'h'的ASCII码值72,是一个常量,将一个地址赋给一个常量是不行的。
GTA小鸡
吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看了半天感觉可能是没学过strcpy()
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个代码即便是用strcpy()函数也是不行的,问题在于主函数定义指针的时候指向的字符串常量是存在文字常量区@GTA小鸡,不知道我这样解释对不对
不堪的友谊
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示