新手求教 double a[][2] double (*a)[2] 的区别

shenbailianlife 2012-07-15 12:05:41
rt 谢谢
...全文
307 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenbailianlife 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:
引用 1 楼 的回复:
double[][2]属于不完整类型,而double(*)[2]属于指针类型。

请教大虾 我可以理解成二者效果等价吗

两者不是一样的东西,不能等价。

但在形参中,double[][2]被调整为double(*)[2],这里仅是被调整,不代表两者等价,有些书称之为“退化”,这是不准确的。
[/Quote]
大大的 再再论指针 很牛逼呀!!
shenbailianlife 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:
引用 1 楼 的回复:
double[][2]属于不完整类型,而double(*)[2]属于指针类型。

请教大虾 我可以理解成二者效果等价吗

两者不是一样的东西,不能等价。

但在形参中,double[][2]被调整为double(*)[2],这里仅是被调整,不代表两者等价,有些书称之为“退化”,这是不准确的。
[/Quote]
嘿嘿 明白了 大大你好棒!膜拜啊!!! 谢谢!!!! 我这两天练了10多道题(c primer plus的课后习题)感觉他们的调整场合居多,能看出二者之差别的场合还真没遇见
shenbailianlife 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
double[][2]属于不完整类型,而double(*)[2]属于指针类型。
[/Quote]
请教大虾 我可以理解成二者效果等价吗
shenbailianlife 2012-07-15
  • 打赏
  • 举报
回复
嗯 第二个指针类型我知道是指向包含2个元素的数组
第一个不完全类型我百度了下:

C语言的类型分为函数类型、对象类型和不完全类型三大类。对象类型又分为标量类型和非标量类型。指针类型属于标量类型,因此也可以做逻辑与、或、非运算的操作数和if、for、while的控制表达式,NULL指针表示假,非NULL指针表示真。不完全类型是暂时没有完全定义好的类型,编译器不知道这种类型该占几个字节的存储空间,


但是到底该怎么理解呢?一般用在什么情况下用到它?
它和指针的区别在哪儿呢?
W170532934 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

double[][2]属于不完整类型,而double(*)[2]属于指针类型。
[/Quote]
+++
飞天御剑流 2012-07-15
  • 打赏
  • 举报
回复
double[][2]属于不完整类型,而double(*)[2]属于指针类型。
飞天御剑流 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 1 楼 的回复:
double[][2]属于不完整类型,而double(*)[2]属于指针类型。

请教大虾 我可以理解成二者效果等价吗
[/Quote]
两者不是一样的东西,不能等价。

但在形参中,double[][2]被调整为double(*)[2],这里仅是被调整,不代表两者等价,有些书称之为“退化”,这是不准确的。
飞天御剑流 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
嗯 第二个指针类型我知道是指向包含2个元素的数组
第一个不完全类型我百度了下:

C语言的类型分为函数类型、对象类型和不完全类型三大类。对象类型又分为标量类型和非标量类型。指针类型属于标量类型,因此也可以做逻辑与、或、非运算的操作数和if、for、while的控制表达式,NULL指针表示假,非NULL指针表示真。不完全类型是暂时没有完全定义好的类型,编译器不知道这种类型该占几个字节的存储空间……
[/Quote]
显而易见的不完整类型的例子是前向声明。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧