C++学习笔记七之指针与const

198 阅读1分钟

指针与cons

指针常量与常量指针

  • 指针常量:const修饰指针本身
  • 常量指针(只读类型的指针):const修饰指针指向的类型

判断:const在*前还是后,前:常量指针;后:指针常量

指针常量

  • 必须初始化;
  • 可以通过指针修改指向变量的值.
  • 不可以改变指针的指向

常量指针:只读类型的指针

  • 可以不初始化
  • 不可以通过指针修改指向变量的值
  • 可以改变指针的指向
  • 可以指向非const修饰的变量。

练习代码

	//const修饰的变量必须初始化
	const int n = 10;
	//n = 200;//编译错误,n是只读类型的变量,不能赋值
	int const m = 100;
	int x = 100;
	//常量指针
	const int *p=nullptr;
	int const *p1;
	p = &m;
	//*p = 100;错误.常量指针不能通过指针修改指向变量的值。
	//m = 200;//m是只读类型的变量,不能赋值
	p = &x;//可以改变指针的指向
	//*p = 200;//编译错误
	x = 200;

	//指针常量:
	 int * const p2=&x;
	*p2 = 200;//正确
	//p2 = &x;//错误,不能改变指针的指向

	//只读类型的指针常量:既不可以改变指向,也不可以通过指针修改指向变量的值
	const int * const p3 = &m;

	char *pchar = "abcd";
	//pchar[0] = 'a';//编译不报错,运行可以导致程序崩溃