鱼C论坛

 找回密码
 立即注册
查看: 4661|回复: 10

C语言 指针问题

[复制链接]
发表于 2013-5-11 22:54:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请给位友友帮忙。。这是两个程序,一个有加&,一个没有加&,一个没加*,  运行的结果不一样这是为什么呢?
00.jpg

没加*

没加*

0.jpg
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-11 23:09:34 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-11 23:19:42 | 显示全部楼层
编译器的问题吧 ;
第二个 输出的是数组元素的地址,而一个int型 占4个字节 因为数组在内存中是地址连续存储,所以输出结果应该为12;
第三个 直接是数组元素相减,结果应该为3啊;
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-11 23:36:43 | 显示全部楼层
你第二个这样的格式  存在语法问题的。左边是整形  右边是 数组元素的 地址,编译都通不过。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-12 12:36:06 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-12 15:48:05 | 显示全部楼层
你这个第二个和第三个存在语法错误
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-12 17:18:29 | 显示全部楼层

VS 2012 有提示  但是可以编译运行。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 02:21:30 | 显示全部楼层
第一个, 是第四个元素的地址与第一个元素的地址相减啊, 计算出来的是两个元素之间的偏移啊
第二个与第三个, 一个是把地址int *赋给int , 一个是把int 赋给int *, 行吗?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 10:59:58 | 显示全部楼层
曾拥有的方向 发表于 2013-5-11 23:19
编译器的问题吧 ;
第二个 输出的是数组元素的地址,而一个int型 占4个字节 因为数组在内存中是地址连续存 ...

这里 2个字节而不是4
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 11:08:40 | 显示全部楼层
我是师兄 发表于 2013-5-13 10:59
这里 2个字节而不是4

int 型在32位和64位系统不是占用4个字节吗
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 11:14:54 | 显示全部楼层
曾拥有的方向 发表于 2013-5-13 11:08
int 型在32位和64位系统不是占用4个字节吗

和系统没什么关系 主要是编译器
楼主的编译器的int是2个字节的
所以才会有 3 和 6的结果
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-28 14:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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