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

指针,常量和类型别名

时间:2015-06-26 00:12:18      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

定义typedef char* cptr,cptr和char *在定义数据时的区别,可由下面两个程序得出。
typedef char * cptr;
void main()
{
char a;
const cptr p = 0;
p = &a;
?
system("pause");
}
上面的程序编译时报错,error C3892: “p”: 不能给常量赋值

void main()
{
char a;
const char * p = 0;
p = &a;

system("pause");
}
这个程序编译成功

通过上面两个程序,我们可以得出:
利用别名定义数据类型时,定义的变量的基本数据类型是该别名的类型,如const cptr p = 0;基本数据类型是cptr,所以P是常量指针。对于const char * p = 0;其基本数据类型是const char,p是指向常量的指针,与const cptr p = 0中p的意义完全不同。


以上知识是在<<C++ Primer>>中看到的,第五版61页

指针,常量和类型别名

标签:

原文地址:http://www.cnblogs.com/gazebal/p/4601157.html

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