【c++】——const详解

文章目录

    • 1、在.c中const 的用法
    • 2、在.cpp中const 的用法
    • 3、Const和static修饰的成员
      • 3.1const修改成员变量的处理
      • 3.2static修饰的成员变量
    • 4、int* const p和const int* p区别

首先,我们要来明确一下,什么是const,在我们通常的观念里面,我们会认为下面这个代码是错误的。

	const int b = 20;
	b = 30;

因为const修饰的变量不能作为左值。初始化完成后值不能被修改。

1、在.c中const 的用法

在我之前的一篇博文中,有对其大概的讲解,c语言中const的用法
1.1const修饰的量,可以不用初始化
例如以下的程序是错误的:

const int a;
a = 20;

因为const的值虽然可以不用初始化,但是以后就不能作为左值来进行修改了。
所以一般情况下还是对其进行初始化。

1.2const修饰的量不叫常量,叫常变量
他和变量的唯一区别就是不能够把她作为左值修改。比如下列程序就是错误的。

const int a = 20;
int array[a] = {};

1.3练习
下列.c程序,打印结果是多少?

int main()
{
	const int a = 20;
	int* p = (int*)&a;
	*p = 30;
	printf("%d %d %d\n", a, *p, *(&a));
	return 0;
}

你可能感兴趣的:(c++)