社区
C++ 语言
帖子详情
char **p中**的意思
zq0417
2007-03-04 09:23:35
void GetMemory( char **p, int num )
{
*p = (char *) malloc( num );
}
void Test( void )
{
char *str = NULL;
GetMemory( &str, 100 );
strcpy( str, "hello" );
printf( str );
}
**p表示的是什么?
*p = (char *) malloc( num );中*p又是什么意思?
...全文
360
6
打赏
收藏
char **p中**的意思
void GetMemory( char **p, int num ) { *p = (char *) malloc( num ); } void Test( void ) { char *str = NULL; GetMemory( &str, 100 ); strcpy( str, "hello" ); printf( str ); } **p表示的是什么? *p = (char *) malloc( num );中*p又是什么意思?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tiancaiak
2007-03-05
打赏
举报
回复
指针也是个量,也要占内存的,当然可以再找一个指针指向这块存放指针的地址
lengxueqingfeng
2007-03-05
打赏
举报
回复
当我们要存一个变量的地址的时候就会用到指针.
因为指针也是一个变量,当我们要保存一个指针变量的地址的时候也会用到指针,只是这个指针保存的另一个指针变量的地址,通常我们把这种指针叫做指针的指针,以此类推,那保存此种指针的地址的指针变量叫什么呢,只有叫指针的指针的指针。
使用如下:
char*pc; // 指针,保存的类型为char的变量的地址
char**ppc; // 指针,保存的是另一个指向char变量的指针的地址;
char***pppc;//指针,保存的是另一个指向char*变量的指针的地址;
pc = new char[5];
ppc = &pc;//保存指针pc的地址;
pppc = &ppc;//保存指针ppc的地址;
//这里声明时,
char*,*表明此变量为指针,char为该指针指向变量的类型.
char**, *表明此变时为指针,char*为该指针指向变量的类型.
变量pc,ppc,pppc都是指针,只是指向的变量类型不同罢了,使用的时候和平时常用的pc这种指针是一样的。
不要看它*号多就被吓倒了,它也只是声明的一个指针型类.
snprintf
2007-03-05
打赏
举报
回复
也可以这样理解:
char* *p;
把 char* 看作一种类型(指向字符的指针类型), p 是指向这种类型的指针(即指向 " 指向字符的指针类型" 的指针).
kenneth_lueng
2007-03-05
打赏
举报
回复
可以认为p指向一个指针的数组
feillex
2007-03-04
打赏
举报
回复
**p表示二级指针(指针的指针)
你要改变传入指针自身的值,要么传入指针的指针,要么传入指针的引用。
blackmurder
2007-03-04
打赏
举报
回复
**p表示p是一个指向指针的指针
比如char *a;
那么就可以用p存储a的地址
而*p则和a一样,是指向char型的指针
深入理解const
char
*p,
char
const*p,
char
*const p,const
char
**p,
char
*const*p ...
一、可能的组合: (1)const
char
*p (2)
char
const*p (3)
char
*const p (4)const
char
**p (5)
char
const**p (6)
char
*const *p (7)
char
**const p 当然还有在(5)、(6)、(7)
中
再插入一个const的若干情况,不过分析了以上7
中
,其他的就可类推了! 二、理解助记法宝:...
const
char
*p,
char
const*p和
char
* const p的区别
const
char
*p;//
char
*p是一个指针,指向
char
类型的,被const修饰,表示指向的内容是无法改变的 //但是,p可以改变
char
const *p;//由于没有const *的指针类型,所以const修饰
char
*p,和const
char
*p的效果一样
char
* const p;//const直接修饰p,表示p无法修改,但是指针指向的内容可以修改 总而言之,由const直接修饰的无法更改 ...
char
**p的理解
char
p是声明bai一个字符类型du变量p,
char
* p1是声明一个zhi字符类型的指针变量daop1,那么
char
** p2就相当与zhuan给
char
类型的指针变量再声明一个shu指针.(2级指针) 举个例子,假如:
char
p='a';//假设声明了p后,p在内存的1000处,则&p=1000(&为取变量首地址)
char
* p1=&p;//则p1=1000,*p1=p='a',p1就和p关联了;假设p1被放在2000处
char
** p2=&p1;
const
char
*p
char
* const p
2.
char
* const p
中
的const先与p结合,即指针地址本身为常量不可以赋值,而它所指向的数据可以赋值。1. const
char
*p
中
的*先与p结合,即*p指针指向const类型的数据,所指向的数据是常量不可变得。3.
char
const *p 与const
char
*p 等效的。举例:
char
* const p;举例:
char
* const p;
c语言
char
*p 数组p,关于:
char
(*p)[10] 、
char
p[10]和
char
*p[10]的讨论
发现自己C语言基础有漏洞,果断和大家讨论下:直观理解:1.
char
(*p)[10] 是指向数组的指针。2.
char
p [10]是一个数组p。3.
char
*p [10] 是指针数组,数组元素是
char
*指针。具体的不同点:1.指向数组的指针
char
(*p)[10]
中
,p指向的是一个10个
char
大小的数组,p+1 和 p 的差距是 sizeof(
char
p [10]),p+1已指到...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章