微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

二维数组的指针

如何解决二维数组的指针

我们知道数组的名称实际上是指向它的第一个元素的指针。 例如在二维数组(a [2] [2])中,名称a是指向两个整数的数组的指针。 当我打印使用cout函数时,它显示一个地址,而当我打印a [0]时,它也显示我与a相同的地址,因此我们可以得出a和a [0]相等,它们是指向第一个元素的指针这两个昏暗的阵列。 我的问题是,在此示例中,为什么初始化指向一些int数组的指针是错误的 (int(* p)[2])使用a [0] 即 int (*p) [2] = a[0] // it's wrong.int (*p) [2] = a // it's ok since a and a[0] are the same.

我知道我应该使用&a [0],但是我只是想知道我是否正确理解了,这只是语法问题。

解决方法

这是类型问题。 awk -v str='new-string' 'BEGIN{FS=OFS="/"} {$3 = str} 1' <<< "$s" 是二维的,而"tree": "/a/new-string/b/" 是一维的。因此两者是不兼容的。尽管int (*p)[2]

请考虑需要多次引用(使用a[0])才能获得第一个整数。使用int* p = a[0];的次数是两次

*

但是只有int (*p)[2]cout << **p; // print first integer 一次

int a[2][2]

但是两次将是编译错误

a[0]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。