【C语言提高22】const专题
2015-12-03 23:14
399 查看
int main() { const int a; int const b; const char *c; char * const d; //char buf[100] const char * const e ; return 0; }
初级理解:const是定义常量==》const意味着只读
含义:
//第一个第二个意思一样代表一个常整形数
//第三个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
//第四个 d常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
// 第五个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
Const好处 //合理的利用const, //1指针做函数参数,可以有效的提高代码可读性,减少bug; //2清楚的分清参数的输入和输出特性 |
结论: //指针变量和它所指向的内存空间变量,是两个不同的概念。。。。。。 //看const是放在*的 左边(饰所指向的内存空变量) 还是右边(修饰指针变量) |
#include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h> void getmem1201(const char*p)//指针所指向的内存空间不能被修改 { } void getmem1202(char *const p)//指针变量不能被修改 { } void getmem1201(const char*const p)//只读 { } void main() { char*p1 = NULL; const char*p2= NULL;//这个相当于指针所指向的内存空间不能被修改 p2 ="50";//但是可以给指针变量赋值 system("pause"); return; }
const char *p; 常量指针,指向一块区域,这块区域不可写,只能读。 char * const p; 指针常量,指向一块区域,这块区域可读可写,但是指针的值初始后就不能改,类似于一般常量。 const char * const p; 上面两种类型的综合,指针指向的区域不可写,可读。指针初始化后不能改
相关文章推荐
- 【C语言提高21】关于字符串的一个例题
- 链表排序——插入排序(纯C语言版)
- C++UDP通信源码
- C/C++程序设计——指针与函数
- 普通二叉树C++实现
- C语言实现封装
- c_7: c语言函数
- 《C++标准程序库》笔记之二
- 派生类和基类的关系
- 一款C++静态分析工具 —— CppDepend
- C++ 下 typeof 的实现
- VS2012 打开C++项目时出现MSB8020的错误代码
- codeforces604B More Cowbell
- codeforces604C Alternative Thinking (脑洞大开 )
- c语言实现单链表
- C++11之美
- OJ提交题目中的语言选项里G++与C++的区别(转载)
- IOS C语言 指针
- 位图法查找算法
- IOS C语言 函数