美文网首页C Primer Plus
C语言中const使用方法总结

C语言中const使用方法总结

作者: 桐桑入梦 | 来源:发表于2020-01-11 20:00 被阅读0次

1.使用const创建一个变量,这个变量不可修改

const int pi = 3.14;

2.使用const创建一个保护数组(数组内容不可以进行修改)

#define SIZE 3;
...
const int A[SIZE]={1,2,3};

下面语句导致产生编译错误:

A[1]=10;

3.修饰用来指向const数据的指针(const指针也可以指向非const数据,但是从这个指针的角度看,数据是const的,不可以修改,实际上数据不一定是const的)

double B[5]={  1.1,   2.2,    3.3,   4.4,   5.5   };
const double *p = B;

指向const数据的指针不能用来改变值,以下的操作都是不允许的

*p = 1.0;
p[2] = 3.0;

这里const指针指向数据实际上是非const数据,故下面操作允许

B[0]=1.0;
B[2]=3.0;

一般指向const的指针用于函数的形式参数当中,表明该函数不会使用指针改变数据

void test(const int * a,int n);

把const数据或者非const数据的地址初始化为指向const的指针或者为其赋值是合法的

const int A[3]={1,2,3};
int B[3]={4,5,6};
const int *p = A;
p = B;
p = &B[2];

但是,不能把const数据的地址赋值给普通的指针,指针赋值给const指针。否则,通过这个普通的指针就能改变const数组中数据。
eg.使用非const标识符修改const数据会导致未知的结果

const int a[3]={1,2,3};
int  sum(int b[],int n){ ... }
...
int s = sum(a,3);//这里会导致未知的结果

4.可以声明并初始化一个不能指向别处的指针,关键是const的位置。可以使用这种指针修改它指向的值,但是它只能指向初始化设置的地址。

int a[3]={1,2,3};
int * const p = a;
p = &a[1];   //不允许,因为该指针不能指向别处
*p= 0;   //可以

5.在创建指针的时候可以使用两次const,该指针即不能更改它指向的地址,也不能修改指向地址的值。

int b[3]={1,2,3};
const int * const p=b;
p = &b[1];  //error
*p = 4;       //error

相关文章

  • C语言中const使用方法总结

    1.使用const创建一个变量,这个变量不可修改 2.使用const创建一个保护数组(数组内容不可以进行修改) 下...

  • 一、C++中的const、define

    C 语言中 在C语言中,const是个假语法,const 中的变量可以通过指针修改,例如: C++中 const ...

  • C/C++ Const 小知识

    Const Const 特点 [描述] 在 C、C++、D 和 JavaScript 编程语言中,const是一个...

  • 【记2】const小记

    一、首先介绍C语言中的const功能。 二、开始比较C语言与C++中的const区别。在C语言中,若采用以下代码,...

  • const使用

    通过指针可以修改c语言中const修饰变量的值 const_cast

  • const、static、extern 在头文件中似的情况小结

    const C语言中const修饰的变量存在静态区,c++中存在代码区不占内存。在...

  • C++ const 分析

    1、C语言中的const: const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间 c...

  • C++ const

    C 和 C++ 中全局 const 变量的作用域相同,都是当前文件,不同的是它们的可见范围:C 语言中 const...

  • 2.头文件与类的声明

    C语言和C++语言中 函数与数据使用方法的不同 C语言中由于C语言中没有某些关键字,所以数据可以被全部函数所使用 ...

  • 浅谈C和C++中的const关键字

    C语言中的const const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用co...

网友评论

    本文标题:C语言中const使用方法总结

    本文链接:https://www.haomeiwen.com/subject/chlmactx.html