正文

大虾对C指针的理解2007-11-09 14:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/30829.html

分享到:

77535518 13:58:32
 
77535518 13:58:44
这就是
77535518 13:59:00
当定义char c[6]="abc";
77535518 13:59:19
和定义char *d;
_BAT_姜维 13:59:48
图片还没完全打开
77535518 14:00:04
 
_BAT_姜维 14:00:21
o
77535518 14:00:55
看到图了吗?
_BAT_姜维 14:01:02
看到了上一个
_BAT_姜维 14:01:16
o
77535518 14:01:17
呵呵,下一个我又重发的,不用看了
77535518 14:01:54
这样c中的地址是固定的,以后c就不能再被赋值了,像c="123"之类的就不行了
_BAT_姜维 14:02:11
o
77535518 14:03:01
而d作为指针在刚定义时,里面的值是个随机值,它就可以进行赋值操作,比如d=c
_BAT_姜维 14:03:09
o
77535518 14:03:18
这时候,内存图如下:
_BAT_姜维 14:03:28
en
77535518 14:04:31
 
77535518 14:04:53
又贴多了
_BAT_姜维 14:04:57
he
_BAT_姜维 14:05:08
看到了
77535518 14:05:35
那你画一个 d=c+1;的图给我
_BAT_姜维 14:06:27
==
77535518 14:06:30
指针可以任意赋值,甚至可以赋值不同类型的指针
77535518 14:07:27
而数组则不容许赋值,你如果想让C数组内容是“789”就不能用c="789"来进行
77535518 14:07:50
而必须用strcpy(c, "789")来进行了
77535518 14:07:56
内存图如下:
_BAT_姜维 14:07:59
o
_BAT_姜维 14:08:17
而数组则不容许赋值,你如果想让C数组内容是“789”就不能用c="789"来进行
很好
_BAT_姜维 14:08:30
怪不得
原来我这里有错误
继续
77535518 14:08:58
 
77535518 14:09:50
因为现在d也指向了1234,所以也可以用strcpy(d, "789")达到同样效果
77535518 14:10:28
因为d可以赋值,是不是可以用d="789"来达到上述效果呢?
77535518 14:10:55
回答
77535518 14:11:09
问你呢
_BAT_姜维 14:13:53
刚才出去打电话
_BAT_姜维 14:14:04
老爸打我手机
不好意思
77535518 14:14:06
哦,看下我的问题
_BAT_姜维 14:14:21
d="789"
?
_BAT_姜维 14:14:30
不可以吧
77535518 14:14:51
现在d=c;然后d="789"是不是能让C数组的内容变成“789”呢?
_BAT_姜维 14:15:29
d="789"这样可以?

77535518 14:15:39
回答是不能,这样会变成如下内存:
77535518 14:15:42
 
_BAT_姜维 14:15:47
char *d="789"我知道这样可以
_BAT_姜维 14:16:01
d="789"这样好象```
77535518 14:16:12
假设系统为“789”数组分配了1300地址的内存
_BAT_姜维 14:16:40

77535518 14:16:44
只有strcpy(d, "789")才可能达成让C数组的内容变成“789”
77535518 14:16:53
 
77535518 14:17:31
那d=c+1的内存图画了让我看
_BAT_姜维 14:17:40
发不过去
_BAT_姜维 14:17:55
是d指向C的下一个地址吧
77535518 14:17:56
用复制粘贴
77535518 14:18:12
对了,D变成了1235指向了‘8’
77535518 14:18:46
ok,那d=c+1是d指向了C下一个字符,那d=c++可以吗?
_BAT_姜维 14:18:51
o
_BAT_姜维 14:20:47
不可以
_BAT_姜维 14:20:51
c++````
_BAT_姜维 14:21:02
c不是左值吧
77535518 14:21:12
对了,c++修改了c的值,对数组来说是不允许的
_BAT_姜维 14:21:24
en
77535518 14:21:29
好了,晚上再聊吧,我要去上班了
_BAT_姜维 14:21:33
3Q

阅读(2216) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册