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:21o77535518 14:00:55看到图了吗?_BAT_姜维 14:01:02看到了上一个_BAT_姜维 14:01:16o 77535518 14:01:17呵呵,下一个我又重发的,不用看了77535518 14:01:54这样c中的地址是固定的,以后c就不能再被赋值了,像c="123"之类的就不行了_BAT_姜维 14:02:11o 77535518 14:03:01而d作为指针在刚定义时,里面的值是个随机值,它就可以进行赋值操作,比如d=c_BAT_姜维 14:03:09o77535518 14:03:18这时候,内存图如下:_BAT_姜维 14:03:28en 77535518 14:04:31 77535518 14:04:53又贴多了_BAT_姜维 14:04:57he_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:59o_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:21d="789"?_BAT_姜维 14:14:30不可以吧77535518 14:14:51现在d=c;然后d="789"是不是能让C数组的内容变成“789”呢?_BAT_姜维 14:15:29d="789"这样可以? 77535518 14:15:39回答是不能,这样会变成如下内存:77535518 14:15:42 _BAT_姜维 14:15:47char *d="789"我知道这样可以_BAT_姜维 14:16:01d="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:46ok,那d=c+1是d指向了C下一个字符,那d=c++可以吗?_BAT_姜维 14:18:51o_BAT_姜维 14:20:47不可以_BAT_姜维 14:20:51c++````_BAT_姜维 14:21:02c不是左值吧77535518 14:21:12对了,c++修改了c的值,对数组来说是不允许的_BAT_姜维 14:21:24en 77535518 14:21:29好了,晚上再聊吧,我要去上班了_BAT_姜维 14:21:333Q

评论