社区
C语言
帖子详情
请教指针的指针问题??
bluefile
2003-08-22 12:18:13
最近对指针的指针又犯难了
char **p 定义了一个二级指针,
那么p表示什么?
*p又表示什么?
**p呢?
如果这样:char **p;
char *p2 = "Test";
*p = p2; //表示什么呢
cout << *p <<endl;
一级指针: a表示指针值(指向地址)
&a表示指针a本来地址
*a表示指针指向值
二级: a 也表示指针值(指向地址)
*a表示???
**a????
&a?????
...全文
18
11
打赏
收藏
请教指针的指针问题??
最近对指针的指针又犯难了 char **p 定义了一个二级指针, 那么p表示什么? *p又表示什么? **p呢? 如果这样:char **p; char *p2 = "Test"; *p = p2; //表示什么呢 cout << *p <<endl; 一级指针: a表示指针值(指向地址) &a表示指针a本来地址 *a表示指针指向值 二级: a 也表示指针值(指向地址) *a表示??? **a???? &a?????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bluefile
2003-08-23
打赏
举报
回复
我还是不太明白 NEW 分配内存时的用法:char **p = new char*; ?是否正确
以及其他NEW的用法?三井兄能解释一下吗
davidwoo
2003-08-23
打赏
举报
回复
*p 记录存储某一类型数据的地址
**p 记录存在这一地址的地址
bluefile
2003-08-23
打赏
举报
回复
新的问题是:char x[][] = {"haha","hehe","hihi"}
char** p = x;
无法编译!
而用 char *x[] = {"haha","hehe","hihi"};
char **p = x;
就可以
积木
2003-08-22
打赏
举报
回复
记住这句话
char* p是一个指针 char** p是指向指针的指针
p 表示一组字符串中一个字符串的首地址
*p又表示什么?表示一个字符串的首地址
**p 表示一个字符值
char *p2 = "Test"; 定义一个新串
*p = p2; 将p2付给*p,即p指向的一组字串中又添加了p2;
cout << *p <<endl; 自然就是输出p2指向的字串了。
用数组的眼光来看这个问题(很不严谨,但是可以帮助你理解)
int* p 相当于一维数组 int p[]
int* p 相当于二维数组 int p[][]
Salam2001
2003-08-22
打赏
举报
回复
强烈建议看一下谭浩强的“C程序设计”关于指针的那一章,通俗易懂!
zyzyandzyzy
2003-08-22
打赏
举报
回复
很好理解,就是指针的指针啊,指针也是一种变量类型嘛,也可以附值啊。
chxinheifeng
2003-08-22
打赏
举报
回复
对于需要传递内存的程序比如
Fun1(void ** ppBuf)
{
try
{
*ppBuf =(void *) new char[1024];
}
catch(..)
{
}
}
,调用的结果可以带出一个指针,*ppBuf指向的地址是在函数内分配的
另,多级指针在实际上并不存在,也没有意义
积木
2003-08-22
打赏
举报
回复
细点说吧,假设我有一组字串
char x[][] = {"haha","hehe","hihi"}
然后我这样
char** p = x;
那么现在
*p就代表第一字串的首地址
**p就代表第一个字符了
p++后呢?
*p就代表第二个字串的地址了
如果我已经有很多的char* p ;那么我就可以定义一个char** p再设计一个算法,
用来在char* p中遍历
所以我说相当于添加了一个字串,
BTW:
cout << **p << endl
当然是输出当前指向的一个字符了;
bluefile
2003-08-22
打赏
举报
回复
感谢三井的指点,但新的问题是 二维指针除了和指针数组配合使用还有什么意义吗?
char **p = new char*; //这样分配内存对吗???
char *p2 = "Test"; //定义一个新串
*p = p2; //将p2付给*p,即p指向的一组字串中又添加了p2,怎么说p指向一组字符串
cout << *p <<endl; //自然就是输出p2指向的字串了。
那么如果**p 表示一个字符值,cout << **p << endl;又是什么呢
ahusd
2003-08-22
打赏
举报
回复
指针*一次,就等于又套了一次,也就是说,如同数组又加了一层!
immaga
2003-08-22
打赏
举报
回复
记住:
*p是行指针,对应一个二维数组arr[m][n]中的arr[m]一样
c语言结构体
指针
菜鸟教,菜鸟
请教
C语言结构体
指针
实例化的
问题
?
该楼层疑似违规已被系统折叠隐藏此楼查看此楼在函数中对结构体赋值时赋不上,用printf查看结果始终为0,有人说是因为结构体
指针
使用前没有进行实例化导致。一知半解没明白什么叫实例化,好像是要用malloc分配内存。请问各位高人:(1)实例化是什么操作?什么东西使用前必须实例化?是结构体使用前必须实例化?还是
指针
使用前必须实例化?还是什么别的……?(2)我试过单独对结构体
指针
进行赋值,代码如下,为什...
C语言|
指针
进阶(2):常量
指针
和
指针
常量、数组参数和
指针
参数、函数
指针
指针
是我们学习C语言的重工具,这篇博客是我对C语言
指针
进阶探索的又一深入,主要讲了
指针
常量和常量
指针
、数组参数和参数数组、函数
指针
、函数
指针
数组、指向函数
指针
数组的
指针
,很多思想基础在我的另一篇
指针
博客中有提到,有兴趣的朋友可以去看一下。刚开始学习
指针
不久,写的不好,向各位大佬
请教
,欢迎大家给我提任何
问题
.........
matlab里有
指针
吗,matlab能返回
指针
和接受
指针
吗?
该楼层疑似违规已被系统折叠隐藏此楼查看此楼我写了一个C++文件tdbconnect.cpp,想通过matlab调用该文件中的函数。在tdbconnect.cpp中有mexFunction函数,你们晓得是什么函数的。在mexFunction函数中,我创建了一个
指针
void *的,现在想返回出来,给另一个函数使用。但是,
指针
有
问题
了。纠结啊!!!!!!!具体如下:1. tdbconnect.cpp ...
c语言 表盘
指针
旋转,
请教
下,表盘
指针
图片旋转 ??
, 0, 0 );}_ClockParm->hMem1_ClockDest = GUI_MEMDEV_CreateFixed32( 18, 28+79,// 最终显示的 x,y 地址_ClockPosStream[0].xSize, // 与显示最大表盘尺寸宽度一致即可_ClockPosStream[0].ySize );_ClockParm->hMem1_Cl...
C语言
指针
干货——你真的学懂
指针
了吗?(一)
真正的大师永远永远怀揣着一颗学徒的心。近来琐事颇多,有些心猿意马,一些本该做的事没有做,本该能做好的事却做的很糟糕。然青春如如白驹过隙,当争朝夕。早在一周前就想写篇c语言
指针
博客,拖拖拉拉到今天才写。下面为大家带来一篇C语言
指针
详解。希望能和大家一起学习,交流。如有错误,欢迎批评指正,我将虚心
请教
。本次博客所以源码在文末。本期内容:
指针
是什么?
指针
的大小
指针
和
指针
类型。
指针
运算下期更新。
C语言
69,335
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章