社区
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又是什么意思?
...全文
366
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写文章
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
*p是一个指针,指向
char
类型的,被const修饰,表示指向的内容是无法改变的 //但是,p可以改变
char
const *p;//由于没有const *的指针类型,所以const修饰
char
*p,和const
char
*p的效果一样
char
* const p;//const直接修饰p,表示p无法修改,但是指针指向的内容可以修改 总而言之,由const直接修饰的无法更改 ...
const
char
*p;
char
* const p;const
char
* const p;
const
char
*p;
char
* const p;const
char
* const p; 前言 const 限定符,它把一个对象转换成一个常量,而常量不能修改。 一、 const
char
*p; const修饰*p,所以 *p在等号左边的操作都是不合法的,因为 *p不可变,此时不能用 *p来修改(eg: *p = 10; 不合法),但是p可变,p可以转向。 二、
char
* const p; const修饰p,所以 p在等号左边的操作都是不合法的,因为 p不可变,此时不能用 p来修
char
*const p,const
char
*p,
char
const *p和区别(容易混淆)
我在c++
中
学到了这个地方的时候,我们会碰到下列的这些定义.
char
*const p const
char
*p
char
const *p 如果学得不够深入的话,很难分清这些区别。 我们来看第一种
char
*const p 我们很容易能看到const 修饰的是p即p是不能被修改的。 所以p指向的内容是可以修改的,但是改变p是不可以的。 第二种是const
char
*p 我们可以看到const是修饰 指针p指向
char
类型,可以认为是p所指向的内容是不可以被修改的。 第三种就是
char
con
【C语言】const
char
* p、
char
const* p、
char
* const p、 和const
char
* const p的区别
const
char
p*:表示p是一个指向常量字符的指针,即指针所指向的字符是不可修改的,但指针p本身是可以修改的。
char
const p和const
char
p**是等价的,也表示p是一个指向常量字符的指针,即指针所指向的字符是不可修改的,但指针本身是可以修改的。
char
const p*:表示p是一个指向字符的常量指针,即指针本身是不可修改的,但指针所指向的字符是可以修改的。
关于const
char
*p 和
char
*const p的区别
关于const
char
*p 和
char
*const p的区别
C++ 语言
65,204
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章