码迷,mamicode.com
首页 > 其他好文 > 详细

const char *p 和char * const p

时间:2015-07-02 19:35:29      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:typedef

技术分享

把一个声明从右向左读。 
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

标签:typedef

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!