您的位置:首页 > 编程语言 > C语言/C++

【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; 上面两种类型的综合,指针指向的区域不可写,可读。指针初始化后不能改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: