社区
C语言
帖子详情
下面程序中g[]和g[][]都可以使用,g到底是一维数组还是二维数组?
laomashitu
2011-08-19 06:44:43
double *ppTmp[8];
double (*g)[8] = new double[8][8];
……
for(i=0;i<nx;i++)
{
ppTmp[i]=g[i];
}
...全文
148
22
打赏
收藏
下面程序中g[]和g[][]都可以使用,g到底是一维数组还是二维数组?
double *ppTmp[8]; double (*g)[8] = new double[8][8]; …… for(i=0;i<nx;i++) { ppTmp[i]=g[i]; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jernymy
2011-08-20
打赏
举报
回复
[Quote=引用 9 楼 whuqin 的回复:]
g是一维数组,里面的元素是double*,指向一块保存有doule元素的内存区。所以可以看成二维数组。
[/Quote]
++
Jade0709
2011-08-20
打赏
举报
回复
g是数组指针,数组指针应该与指针数组相区别。
double (*g)[8]:定义了一个指针,指向的单元为8个double型,所以g的步长为8*sizeof(double)
double *g[8]:定义了一个有8个元素的数组,数组的元素是指向double型数据的指针。
这样来看,问题中定义的g,用作g[i]时其本质是表示一个指向首地址为g+i*8*sizeof(double)长度为8*sizeof(double)的一片内存的指针,用作g[i][j]其本质是内存地址为g+(i*8+j)*sizeof(double)中的内容。
rein07
2011-08-20
打赏
举报
回复
其实只要知道指针及指向的内容就知道哪些是一维数组,哪些是多维数组
modicum_lf
2011-08-20
打赏
举报
回复
[Quote=引用 13 楼 jernymy 的回复:]
引用 9 楼 whuqin 的回复:
g是一维数组,里面的元素是double*,指向一块保存有doule元素的内存区。所以可以看成二维数组。
++
[/Quote]
++
hackbuteer1
2011-08-20
打赏
举报
回复
g是一维数组,里面的每个元素都指向一个double * 元素的存储区,就是又指向一个含8个double的一维数组
,相当于二维数组
wizard_tiger
2011-08-20
打赏
举报
回复
9楼正解!
Jade0709
2011-08-20
打赏
举报
回复
指针和数组是不能混为一团的,虽然有的时候用起来形式是一样的。
Cql_liliang
2011-08-20
打赏
举报
回复
[Quote=引用 4 楼 jxiaoshen 的回复:]
g是这样的一个数组:第i个元素对应于二维数组的第i行
[/Quote]
乱说,g不是一个数组, 而是一个指向数组的指针!!
g759281
2011-08-20
打赏
举报
回复
很好 谢谢
JiangXiang
2011-08-20
打赏
举报
回复
g到底是一维数组还是二维数组?
g是指针!
等待升级
2011-08-19
打赏
举报
回复
[Quote=引用楼主 laomashitu 的回复:]
double *ppTmp[8];
double (*g)[8] = new double[8][8];
[/Quote]
1.数组。元素为指针
2.指针。指向 含8个double的一维数组
++时 偏移不一样
1.偏移一个指针的长度(4字节)
2.偏移一个数组长度(即8*8)
vcf_reader
2011-08-19
打赏
举报
回复
不管几维,内存都按照一维处理
cao_julians
2011-08-19
打赏
举报
回复
[Quote=引用 9 楼 whuqin 的回复:]
g是一维数组,里面的元素是double*,指向一块保存有doule元素的内存区。所以可以看成二维数组。
[/Quote]
为什么有那么多人将g[]形式理解为数组呢?
g[i]只是*(g+i)的另一个指针表达形式而已!
春文秋武
2011-08-19
打赏
举报
回复
g是一维数组,里面的元素是double*,指向一块保存有doule元素的内存区。所以可以看成二维数组。
CJacky++
2011-08-19
打赏
举报
回复
[Quote=引用 2 楼 pathuang68 的回复:]
其实从根本上来讲,所有的多维数组都是一维数组。
[/Quote]
++++
春文秋武
2011-08-19
打赏
举报
回复
g是一维数组,里面的元素是double*,指向别的double元素。所以可以看成二维数组。
cao_julians
2011-08-19
打赏
举报
回复
[Quote=引用 4 楼 jxiaoshen 的回复:]
g是这样的一个数组:第i个元素对应于二维数组的第i行
[/Quote]
概念错误,g是一指针变量,一个!
至善者善之敌
2011-08-19
打赏
举报
回复
[Quote=引用 2 楼 pathuang68 的回复:]
其实从根本上来讲,所有的多维数组都是一维数组。
[/Quote]
++1,所以居士那天说的两种方法还是建议用第一种,哈哈
Jxiaoshen
2011-08-19
打赏
举报
回复
g是这样的一个数组:第i个元素对应于二维数组的第i行
cao_julians
2011-08-19
打赏
举报
回复
g即不是一维数组,也不是二维数组。它是指向8元素数组的指针。
g[0],g[1] 等指向了二维数组的第0行,第1行
g[0][0],g[1][0]等则是行中的元素。
=========================
仔细看看指针表达式部分的知识
加载更多回复(2)
C语言总结(
一维数组
、
二维数组
、字符数组和字符串)
C语言总结第七章、数组
一维数组
一维数组
的定义
一维数组
的引用
一维数组
的初始化
程序
举例
二维数组
及多维数组
二维数组
的定义
二维数组
元素的引用
二维数组
元素的初始化
程序
举例字符数组和字符串字符数组 第七章、数组 ...
一维数组
与
二维数组
什么是
二维数组
?2.
二维数组
的声明的两种方式:3.
二维数组
创建的三种方式4.
二维数组
的迭代 1.
一维数组
1.什么是数组? 数组是相同数据类型元素的集合。 简单说,数组即就是在计算机内存
中
找一块连续的内存,在里面放...
C语言
中
一维数组
与
二维数组
的比较
C语言
中
一维数组
与
二维数组
的比较: 从效率上讲:
一维数组
访问一个数据时,只需要查找与数组元素对应的地址,通过地址匹配到目标元素。
二维数组
则需要先找到目标元素数组的地址,匹配到目标元素数组,然后再...
Python输入数组(
一维数组
、
二维数组
)
一维数组
: arr = input("") //输入一个
一维数组
,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组 print(num) //打印数组
一维数组
输入输出示例: ...
一维数组
与
二维数组
的区别
当数组
中
每个元素都只带有一个下标时,称这样的数组为
一维数组
,
一维数组
实质上是一组相同类型数据的线性集合 举例:a(10),表示的就是a(0)到a(10)之间的十一组数据的集合,数据元素可以是数字,也可以是字符串。 ...
C语言
69,337
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章