社区
C++ 语言
帖子详情
请教一个指针问题,多谢
ufxcom
2006-11-15 02:04:34
有这样的定义
char fileName[][20]={"aa","bb","cc","dd" };
如何再定义一个指针指向fileName指向的地址,并能像使用fileName一样使用这个新定义的指针。
...全文
209
5
打赏
收藏
请教一个指针问题,多谢
有这样的定义 char fileName[][20]={"aa","bb","cc","dd" }; 如何再定义一个指针指向fileName指向的地址,并能像使用fileName一样使用这个新定义的指针。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mmqmjy
2006-11-15
打赏
举报
回复
char **当然不行
要实现p[i][j]指向正确的元素,要看p的类型
首先,p[i]实际上等效于*(p+i),(完全等效)
再者,指针加1的操作不同于int或char的加1操作
int或char等类型加1,就是值加1,
而指针加1,会根据指针的类型加上一个值
这个值的大小是根据类型来定的
比如说
char *pc;
int *pi;
int **ppi;
对于这三个变量pc+1实际上是pc的值加上1(因为一个char占1位)
而pi+1实际上是pi的值加4,一个int占四字节(编译器不同也有可能不同)
而ppi+1其实是ppi的值加4,因为32位机的指针占4字节
第三点要明白的是,C没有真正的二维数组
C里面的多维数组其实都是一维数组,只不过指针不同
像char fileName[][20]={"aa","bb","cc","dd" };其实也就一个一维数组
只不过指针fileName类型是char (*)[20],
操作fileName[i][j]实际指向哪个元素呢
因为fileName是char(*)[20],这是一个数组指针,数组为char [20]
所以该数组指针的元素(即数组)长度为20*1=20
因而,fileName[i]其实是*(char**)((int)fileName+20*i)
得到的是一个char*,所以fileName[i][j]其实是*(char*)((fileName[i])+j)
也就是*(char*)((int)fileName+20*i+j)
因而也就能指向所谓的"二维数组"的第[i,j]个元素
搞清楚上面三点,这问题就不难了
ufxcom
2006-11-15
打赏
举报
回复
mmqmjy(莫名其妙) ( ) 信誉:100 Blog 2006-11-15 14:13:45 得分: 0
char (*p)[20];
是对的, char **不行。
飞哥
2006-11-15
打赏
举报
回复
要一个一个指好像
一楼哪个行
慕容一一
2006-11-15
打赏
举报
回复
char** ppfileName = fileName;
对不对?
mmqmjy
2006-11-15
打赏
举报
回复
char (*p)[20];
2小时精通C++智能
指针
智能
指针
可以解决普通
指针
存在的悬垂
指针
、野
指针
、资源泄露等
问题
本教程的主要的演示平台为Qt 4.11和g++ 7.4。学员也可以使用Visual Studio 2017。 教程中从最简单的例子入手,覆盖智能
指针
的常用技术点,并穿插...
请教
下关于线性表中形参和实参的
问题
(C++),
指针
和引用?
请教
下关于线性表中形参和实参的
问题
(C++),
指针
和引用? 最近在看线性表,期间也看了好些文章,但对线性表中形参和实参用
指针
和引用有些混淆,请大家看看代码: 。 代码如下,三个子函数程序是一样的,只是形参...
(转)FILE
指针
传递给DLL为何无法正确操作--隐式重复定义的陷阱
FILE
指针
传递给DLL为何无法正确操作--隐式重复定义的陷阱 作者: Panic 2006... 主 题:
请教
一个
问题
: 主程序里面打开
一个
文件,将文件
指针
传入dll中,在dll中对文件执行读写 回复根帖 <br /> 作
ZT自老罗的博客 Android系统的智能
指针
(轻量级
指针
、强
指针
和弱
指针
)的实现原理分析...
Android系统的智能
指针
(轻量级
指针
、强
指针
和弱
指针
)的实现原理分析 分类: Android 2011-09-23 00:59 31568人阅读 评论(42) 收藏 举报 androidclassdebuggingdeleteobject Android系统的运行时库层代码是...
Android中的sp和wp
指针
根据几篇文章转载 ...Android系统的智能
指针
(轻量级
指针
、强
指针
和弱
指针
)的实现原理分析 分类: Android2011-09-23 00:59 11383人阅读 评论(30) 收藏 举报 Android系统的运行时
C++ 语言
64,676
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章