const关键字

 修饰常量

const int a = 10;
int const a = 10;

常量指针

以下两种方式等价

const int *a;
int const *a;

常量指针说的是不可以通过指针改变指向内容的值,但是可以重新指向新的地址, 因此一般用作函数参数,防止内部通过指针地址中保存的值void test(int const * val)。

const关键字_第1张图片

指针常量

不能改变指针指向,但是可以通过指针改变指向地址中的值。

如果指针常量作为函数参数,那么函数内部不能修改参数的指向,但是可以修改通过指针指向的值

const关键字_第2张图片

指针常量在window编译器中可以修改const(现在这个应该还是在内存中),但是在keil中是不可以修改的,我们知道keil的常量是写在flash里面的

const关键字_第3张图片

区别指针常量和常量指针,在*左边表示不能修改指向地址中的值,在*右边表示不能修改指向的地址。

指针常量和常量指针结合使用

如果将指针常量和常量指针结合使用const int * const a, 那么就都不能进行修改了

const关键字_第4张图片

常量指针作为函数返回值

作为返回值,不能修改其返回内容的值

const关键字_第5张图片

指针常量作为函数返回值

const关键字_第6张图片 

该方式是合法的,并且可以修改内容的值,如果外部改变值,可能会导致混乱,引入错误,慎用!!!

 

你可能感兴趣的:(C语言语法,javascript,算法,开发语言)