首页 > 其他 > 详细

const char *p 和char * const p

时间:2015-07-02 19:34:53      阅读:139      评论:0      收藏:0      [点我收藏+]

技术分享

把一个声明从右向左读。 
char * const cp; ( * 读成 pointer to ) 
cp is a const pointer to char :const是修饰指针,表明指针不能修改指向了
const char * p; 
p is a pointer to const char; :表明const是修饰一个只读变量,该内存位置是只读的,不可修改,p依旧可以指向别的地方


另外

#define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查

typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名

typedef int * int_ptr;
#define int_ptr int *

nt_ptr a, b; //相当于int * a, b; 只是简单的宏替换
nt_ptr a, b; //a, b 都为指向int的指针,typedef为int* 引入了一个新的助记符

typedef int * pint ;
#define PINT int *

const pint p ;//p不可更改,但p指向的内容可更改
const PINT p ;//p可更改,但是p指向的内容不可更改。

技术分享


const char *p 和char * const p

原文:http://zhaojunjie.blog.51cto.com/5475365/1670263

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!