社区
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];
}
...全文
211
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)
手写数字识别系统.doc【GUI设计Matlab】
资 源 简 介 手写数字识别系统,非常好的啊!带有GUI界面,
使用
方便! 详 情 说 明 用这个手写数字识别系统,你可以轻松地识别手写数字。这个系统不仅功能强大,而且还带有直观的图形用户界面(GUI),非常容易
使用
。你只需要将手写数字输入系统,它将立即给出准确的识别结果。这个系统可以在各种场景
中
使用
,无论是学校、工作还是日常生活,都能为你提供快速和准确的识别服务。它是一个非常方便和实用的工具,你一定会喜欢它的!
如何通过区域科技创新分析工具精准掌握区域创新要素分布与产业链融合现状?.docx
如何通过区域科技创新分析工具精准掌握区域创新要素分布与产业链融合现状?
Visual-Workflow-Orphan-Node-Auditor-v1.0-原创源码与文档.zip
原创本地工程审计与分析工具合集
中
的独立资源包。每个ZIP包含完整源码、3项自动化测试、可复现合成示例、离线HTML、JSON与SVG报告、1080×720真实运行效果图、README、运行说明、功能清单、MIT License及原创与授权声明。解压后进入project目录,执行npm test验证算法,执行npm run report生成报告,也可通过本地静态服务器打开网页。运行时零第三方依赖,不包含热点产品或开源项目源码、Logo、官方截图、论文、生产日志或其他受限素材。适合前端开发、AI应用工程、测试审计和课程实践。
Cypress-Flaky-Test-Evidence-Auditor-v1.0-原创源码与文档.zip
原创本地工程审计与分析工具合集
中
的独立资源包。每个ZIP包含完整源码、3项自动化测试、可复现合成示例、离线HTML、JSON与SVG报告、1080×720真实运行效果图、README、运行说明、功能清单、MIT License及原创与授权声明。解压后进入project目录,执行npm test验证算法,执行npm run report生成报告,也可通过本地静态服务器打开网页。运行时零第三方依赖,不包含热点产品或开源项目源码、Logo、官方截图、论文、生产日志或其他受限素材。适合前端开发、AI应用工程、测试审计和课程实践。
FortiGate-v7.4.9-FGT-601E-v7.4.9.M-build2829-FORTINET.out
FGT_601E-v7.4.9.M-build2829-FORTINET.out
C语言
70,038
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章