const变量 const指针
  C

const变量 const指针

 次点击
6 分钟阅读

const修饰变量

  • 常量化变量的值

  • 一般说明形式如下:const <数据类型> 变量名 = [<表达式>];

  • 常量化变量是为了使变量的值不能修改

  • 变量有const修饰时,若想用指针间接访问变量,指针也要有const修饰

#include <stdio.h>

int main(){
	const int m = 10;//int const m = 10;
	int * p = &m;
	// error: m++;
	(*p)++;
	printf("%d\n",m);
	return 0;
}

// 11

const修饰指针

const在*前

  • 常量化指针目标表达式

  • 一般说明形式如下:const <数据类型> * <指针变量名称>[= <指针运算表达式>];

  • 常量化指针目标是限制通过指针改变其目标的数制,但<指针变量>存储的地址可以修改

#include <stdio.h>

int main(){
	int m = 10;
	int n = 100;
	const int * p = &m;
	// error: (*p)++;
	p = &n;

	printf("%d\n",*p);
	return 0;
}

//100

const在*后

  • 常量化指针变量

  • 一般说明形式如下:<数据类型> * const <指针变量名称> [= <指针运算表达式>];

  • 使得<指针变量>存储的地址不能修改。但可以通过但可以通过*<指针变量名称>可以修改 指针所指向变量的数值

#include <stdio.h>

int main(){
	int m = 10;
	int n = 100;
	int * const p = &m;

	// error: p = &n;
	*p = 300;

	printf("%d\n",*p);
	return 0;
}

//300

const在*前*后

  • 常量化指针变量及其目标表达式

  • 一般说明形式如下:const <数据类型> * const <指针变量名> = <指针运算表达式>;

  • 常量化指针变量及其目标表达式,使得既不可以修改<指针变量>的地址,也不可以通过*<指针变量名称>修改指针所指向变量的值

#include <stdio.h>

int main(){
	int m = 10;
	int n = 100;
	const int * const p = &m;

	p = &n;//error
	*p = 300;//error

	printf("%d\n",*p);
	return 0;
}

//ERROR

© 本文著作权归作者所有,未经许可不得转载使用。