const与指针结合的三种情况
2015-10-29 09:21
211 查看
/* * ppp.c * * Created on: 2015年10月29日 * Author: xn666 */ #include <stdio.h> #include <stdlib.h> #include <string.h> //一、没有任何修饰的指针,无论是指针本身还是指针指向的内存空间,都可以修改 void func01(){ int * p = NULL; int a = 20; int b = 40; p = &a; printf("%p\n",p); //显示指针本身的值 p = &b; printf("%p\n",p); //显示修改指针后的本身值 *p = 6; printf("%d\n",*p); //显示修改指针指向后的值 } //二、使用const修饰的指针有三种分别是: //1.const int *p //不能修改指针指向的内存空间中的值 //2.int * const p //不能修改指针本身指向,但是可以修改指向内存空间的值 //3.const int * const p //无论是指向的内存空间还是指针本身的值,都不可以修改 void func02(){ int a = 3; int b = 4; //1.const int *p const int *p = &a; //*p = 5; //编译会提示,这是错误的语法 printf("const int *p = %d\n",*p); p = &b; printf("const int *p = %d\n",*p); //2.int * const p int * const t = &a; //t = &b; //编译会提示,这是错误的语法 printf("const int *t = %d\n",*t); *t = 7; printf("const int *t = %d\n",*t); //3.const int * const p const int * const s = &a; //s = &b; //编译会提示,这两种情况都违法的 //*s = 8; printf("const int *s = %d\n",*s); } int main(){ //func01(); func02(); return 0; }
相关文章推荐
- Hadoop与Hbase基本配置
- 16.语音识别
- AFN 框架使用总结
- Android RecyclerView 的瀑布流式布局
- Mac中建立SVN服务器
- java后端程序员书单
- 现代操作系统——死锁
- 2015 沈阳 区域赛 F FROGS 莫比乌斯反演
- eclipse实用小技巧
- 打麻将后感悟
- iOS 应用版本检测更新
- TomCat配置
- C# 下载多个文件打zip包的问题
- Android学习系列(39)--Android主题和样式之系统篇(上)
- 第一节、本地环境的搭配及安装配置
- 使用jdbc获取关系型数据库文件大字段,并还原成文件
- Facebook产品设计总监:设计B端产品的4项基本原则
- eclipse节点检测Bug的使用
- style 实例
- 循环冗余校验检错方案CRC的原理介绍