糟心的C++指针类型辨识
来源:互联网 发布:java时间转换成时间戳 编辑:程序博客网 时间:2024/05/14 19:36
本文主要讲的是const指针的辨识。直接上程序:
int _tmain(int argc, _TCHAR* argv[]){int ivar0 = 0;int ivar01 = 1;// 下面两个定义相同const int ivar1 = 1;int const ivar2 = 2;// 下面的两个定义相同,定义指针可修改,指针所指向的值不可修改const int * pivar1;int const * pivar11;pivar1 = &ivar0;pivar1 = &ivar1;*pivar1 = 3; // 错误,不能修改指针指向的值 // 下面的定义指针不可修改,指针所指向的值可修改int *const pivar2 = &ivar0; //因为指针值不可修改,所以必须初始化*pivar2 = 3;pivar2 = &ivar01; // 错误,不能修改指针本身// 下面的定义指针也不可修改,指针指向的值也不可修改,几乎没有什么用处int const * const ccpiva = &ivar0;ccpiva = &ivar1; // 错误,不能修改指针本身*ccpiva = 4; // 错误,不能修改指针指向的值 string s = "hello";typedef string *pstring;// 下面的句子相当于 string *const cstr; 所以需要定义时初始化const pstring cstr = &s; return 0;}
总结:
辨识const指针的含义主要在于指针符号*的位置上,在变量前面就说明变量值不可修改,
在const 关键字前面则说明指针值不能修改,两个都有就是两个都不能修改。
const关键字糟心的原因是它可以放在类型前,也可以放在类型后,代表的意思是一样的。
最糟心的应该是typedef 的使用,所以有typedef使用的时候,最好把const放在后面,这样就可以正确理解了。
比如上例中的const pstring cstr ,不要把const放在前面,把const放在后面就对了。string* const cstr。
0 0
- 糟心的C++指针类型辨识
- C语言——辨识你见到的类型
- 糟心的日期函数
- C语言的指针类型
- C语言的指针类型
- C++/C指针的类型转换
- c & c++中的“指针、指针变量、指针变量的类型”
- 火车票的真伪辨识
- android studio 的糟心配置问题
- 最糟心的Linux密码问题!!!
- remind Javaweb登录的糟心事
- C语言里的指针类型转换
- Void类型的指针-C语言
- 强化C语言的指针类型学习
- C基础知识--指针类型的常量
- C语言的指针类型解析
- C语言指针的复杂类型说明
- C语言指针的长度和类型
- 1个apk多个图标
- Android设计模式系列--原型模式
- 选top域名6点建议
- 《数据结构》实验4:字符串和多维数组 实验
- easyui解析器parser
- 糟心的C++指针类型辨识
- 算法系列之十二:多边形区域填充算法--改进的扫描线填充算法
- 《TCP/IP详解 卷1:协议》读书笔记
- SW_DVD5_Office_Professional_Plus_2013_W32_ChnSimp_MLF_X18-55126
- 误删系统表(drop dual)后数据库再次启动报错的解决办法
- 《结网》读书笔记
- 日志分析常用工具(一) —— awk
- android4.4对于系统的桌面日历显示日期不随日期改变的修改
- Git常用命令