【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第1张图片

                               少年,做你认为对的事 

目录

                               少年,做你认为对的事 

1.const修饰变量 

2.const修饰指针(重要) 

代码1:

代码2:

 代码3:

​编辑 3.结论


1.const修饰变量 

const修饰变量将变量赋予了常量属性,不可修改

当我们有这样一个变量:

int n = 0;

我们要是想修改n的值,是不是有两种方式:

①n = 20;

②int * p = &n;

*p = 20;

但是,当我们的变量被const修饰时,我们就说这个变量具有了常量属性简称为常属性,那还能修改吗:就不能被修改了

 【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第2张图片

如果我们用第二种方式:

 【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第3张图片

我们发现可以修改但是,这种方法确实是非法的:

但是,我们创建这个const修饰的变量本身就是希望它的值不被改变, 为了弥补这种缺陷,我们就对指针也加上了const修饰:

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第4张图片

接下来引入我们的const修饰指针。

2.const修饰指针(重要) 

代码1:

int main()
{
	 int m = 10;
	 int n = 20;
	//n = 20;
	const int* p = &m;
	printf("%d\n", *p);
	//*m = 20;//error
	p = &n;
	printf("%d\n", *p);

	return 0;
}

 【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第5张图片

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第6张图片 

结论1:当const放在如图所示位置修饰指针的时候,指针指向的地址空间里面的内容不可以修改,但是可以改变指针指向的地址空间 

代码2:

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第7张图片 

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第8张图片 

我们改变了const的位置,但是得出了一样的结论: 当const放在如图所示位置修饰指针的时候,指针指向的地址空间里面的内容不可以修改,但是可以改变指针指向的地址空间 。简单来说限制*p,不限制p

 代码3:

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第9张图片

 结论3:当const放在如图所示位置修饰指针的时候,指针指向的地址空间里面的内容可以可以修改,但是不可以改变指针指向的地址空间 

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)_第10张图片 3.结论

①const 修饰变量,将变量赋予了常量的属性,不可被修改

②const放在指针变量*左边的时候,指针指向的地址空间里面的内容不可以修改,但是可以改变指针指向的地址空间 。简单来说限制*p,不限制p

③onst放在指针变量*右边的时候,指针指向的地址空间里面的内容可以可以修改,但是不可以改变指针指向的地址空间 ,简单来说不限制*p,限制p

你可能感兴趣的:(c语言,开发语言,面试)