找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

为什么我输出一个值,这个值会累加,用的是vc++ 6.0

查看数: 2259 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-8-21 10:21

正文摘要:

用的是vc++6.0

回复

ID:462827 发表于 2019-8-23 10:44
寒山寺小生 发表于 2019-8-23 10:00
主要是我指向的地址一样,为什么值会变

你理解力有些差啊
ID:589552 发表于 2019-8-23 10:42
指针在赋值完成后,已经指向数组后面(超出数组域)的内存空间了,有可能刚好系统将这个内存分配为变量 i了
ID:458699 发表于 2019-8-23 10:03
你这个指针在给数组赋完值后就指到数组后面的位置了,和数组没有直接关系了,你循环打印的是你根本不知道的内存区域的值。你那个值会累加是因为你指针刚好指向数组后面的内存,这个编译器编译的时候给你优化了,它认为你循环打印是有意义的,所以帮你优化打印出了你循环的次数,如果你换一个没有自动帮你优化代码的编译器,就是一个固定的垃圾数了。或者你再把指针往后挪一下,他就不会帮你和前面联系起来,就不会“自作聪明”地优化了,打印的也就是个固定的垃圾数了。
ID:568017 发表于 2019-8-23 10:01
chenyinhu 发表于 2019-8-23 07:39
数组要赋初值吧,然后在for循环里加上一行

主要是我指向的地址一样,为什么值会变
ID:568017 发表于 2019-8-23 10:00
hantu 发表于 2019-8-22 23:54
第二个for循环之前,要重新将指针p指向数组首地址才行啊(因为前面接收完数据后p已经指向数组尾了)。

主要是我指向的地址一样,为什么值会变
ID:568565 发表于 2019-8-23 07:39
数组要赋初值吧,然后在for循环里加上一行
ID:462827 发表于 2019-8-22 23:54
第二个for循环之前,要重新将指针p指向数组首地址才行啊(因为前面接收完数据后p已经指向数组尾了)。
ID:602825 发表于 2019-8-22 19:09
这十个数没有赋值到数组a里
ID:138097 发表于 2019-8-22 08:17
清零啊,你运行完一次需要把变量清零啊

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表