鱼C论坛

 找回密码
 立即注册
查看: 2814|回复: 14

关于数组的一个问题

[复制链接]
发表于 2011-12-5 11:52:02 | 显示全部楼层 |阅读模式

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

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

x
int a[10];
int *p=a;
或者
int *p=&a;
这两个相同吗?怎么觉得它们二级指针和一级指针的相符赋值的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-5 12:33:15 | 显示全部楼层
大部分编译器下,二者是相同的。
但第二表达示是违反ANSI C的。
所以请不要使用第二种表达示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-5 13:47:25 | 显示全部楼层
int a[10];

int *p=&a;
要改为:
int (*p)[10]=&a;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-5 18:34:22 | 显示全部楼层
为什么要这样啊?类型不匹配啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-6 15:47:05 | 显示全部楼层
的确要int (*p)[10] = &a;表示p是个指针,指向一个包含10个元素的整型数组。
int *p = a;a代表的就是数组的起始元素的地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-7 11:59:10 | 显示全部楼层
我特郁闷这地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-7 12:54:53 | 显示全部楼层
本帖最后由 ever.g 于 2011-12-7 12:55 编辑

:L 这第二个我VC6编不过。。
提示不能转换。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-10 13:23:06 | 显示全部楼层
等价的啊,是一样的,具体看小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-10 20:45:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-10 20:46:12 | 显示全部楼层
1293165179 发表于 2011-12-10 13:23
等价的啊,是一样的,具体看小甲鱼

虽然打印出来的值一样,但他们的类型不一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-11 20:35:22 | 显示全部楼层
int *p=&a;
要改为:
int *p=&a[0];试试

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-12 22:23:46 | 显示全部楼层
呵呵。。。。我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-14 21:55:00 | 显示全部楼层
两个应该不一样!本来,*p=a就是去数组a的地址,这个都理解,不用取地址,如果a是一个Int变量,也就是不是数组的情况下,那就需要前面加&取地址,所以第二个不是二级指针,而应该被编译时错误,这是个人理解,可能比较肤浅!也可能错误!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-15 20:07:20 | 显示全部楼层
额,,,,,,暂时这样理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-17 01:28:41 | 显示全部楼层
紫色枫叶 发表于 2011-12-6 15:47
的确要int (*p)[10] = &a;表示p是个指针,指向一个包含10个元素的整型数组。
int *p = a;a代表的就是数组的 ...

p是一个数组,指针数组。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-27 13:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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