const int *p与int *const p的区别
来源:互联网 发布:网络电视直播软件2016 编辑:程序博客网 时间:2024/06/06 08:26
From: http://blog.csdn.net/suer0101/article/details/8032269
本文只是一篇学习笔记,是看了《彻底搞定C指针》中的相关篇幅后的一点总结,仅此而已!
一、先搞清const int *p与int const *p的区别
它们的区别就是:没有区别!!
无论谁在前面都没有影响!所以const int *p与int const *p用法一样!
二、const int *p的用法
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- int main(int argc, char **argv)
- {
- int test1 = 1;
- int test2 = 2;
- const int *p;
- p = &test1;
- p = &test2;
- test2 = 3;
- //*p = 4; error: assignment of read-only location ‘*p’
- printf("%d\n", *p);
- return 0;
- }
执行结果 :3 ,这个好理解,如果加入被我注释掉的那一行就会报错,编译通不过,我用的是gcc version 4.4.3。也就是说*p是常量,不可更改,但指针p还是变量,你想怎么 变都可以。
三、int *const p的用法
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- int main(int argc, char **argv)
- {
- int test1 = 1;
- int test2 = 2;
- int *const p = &test1; //只能在声明的时候就给它赋初值,否则还是会报错的
- //p = &test2; error: assignment of read-only location ‘*p’
- test1 = 3;
- printf("%d\n", *p);
- return 0;
- }
三、补充const int *const p
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- int main(int argc, char **argv)
- {
- int test1 = 1;
- int test2 = 2;
- const int *const p = &test1;
- //p = &test2;
- //*p = 3;
- printf("%d\n", *p);
- return 0;
- }
0 0
- const int *p与int *const p的区别
- const int *p与int *const p的区别
- const int *p与int * const p的区别
- const int* p与int *const p的区别
- const int *p与int *const p的区别
- const int *p与int *const p的区别
- const int *p与int *const p的区别
- const int *p与int *const p的区别
- 关于const int *p与 int *const p的区别
- int * const p 与int const *p或者const int *p的区别
- const int *p,int *const p区别
- const int *p,int *const p区别
- const int *p,int *const p区别
- int * const p 与 const int *p
- int *const p 与 const int *p
- const int *p与int *const p
- int const *p与int *const p区别
- const指针,const int * p, int *const p,int const * p的区别
- iOS开发中常用第三方库的整理
- java内存模型
- String,StringBuilder,StringBuffer的区别
- STM32启动代码概述
- 用inno Setup做应用程序安装包的示例脚本(.iss文件)
- const int *p与int *const p的区别
- 网站大并发解决方案
- poj1741 Tree
- ffmpeg添加水印的方法举例
- jQuery mobile开发之listview动态加载数据问题
- 根据字段更新数据库,同字段多个值只更新一条
- c++第一次实验
- Android Studio 新建drawable-hdpi、drawable-mdpi等
- 国外15种手机游戏引擎和开发工具介绍