C语言笔记16--关键词const

关键词const限定一个变量不允许被改变,也就是改变用户对变量的权限。const修饰时,代表这个变量是一个常量,变量被修饰后,不能再进行自增、自减等。
1.用const定义一个常量

#include<stdio.h>
#include<stdlib.h>
void main()
{
	const int a=10;//只能在定义时赋值
	//a++;不能自增
	//a=20;不能再赋值
	printf("%d\n",a);
	system("pause");
}

上面的代码简单地介绍const定义一个常量,值得注意的是const int 等价于int const。
2.const与指针
const与指针混合使用时非常容易出错,要区分是一个指针指向一个常量还是指针是常量。

#include<stdio.h>
#include<stdlib.h>
void main()
{
	const int a=10;
	const int b=20;
	const int *p=&a;//定义一个指针指向一个常量
	printf("%d\n",*p);
	//*p=30;不能修改
	p=&b;
	printf("%d\n",*p);
	system("pause");
}

打印结果为:
在这里插入图片描述
上面const int *p,定义了一个指针,指向常量,但指针本身是一个变量,可以指向不同的地址,并且指针不能修改指向的内容。
把上面的代码做出修改:

#include<stdio.h>
#include<stdlib.h>
void main()
{
	const int a=10;
	const int b=20;
	int * const p=&a;//这是指针是一个常量
	printf("%d\n",*p);
	//p=&b;不能修改指向的地址
	*p=30;
	printf("%d\n",*p);
	system("pause");
}

打印结果为:
在这里插入图片描述
上面的int * const p;是定义了一个常量指针,指针是一个常量,所以不能再重新指向地址,但可以修改指向的内容。
再对代码做出修改:

#include<stdio.h>
#include<stdlib.h>
void main()
{
	const int a=10;
	const int b=20;
	const int * const p=&a;//这是指针是一个常量,指向的也是一个常量
	printf("%d\n",*p);
	//p=&b;不能修改指向的地址
	//*p=30;不能修改指向的内容
	system("pause");
}

打印结果:
在这里插入图片描述
const int * const p;定义的是一个常量指针指向一个常量,他不能指向新的地址,也不能修改指向的内容。
3.总结
区分const int *,int *const,const int *const,最主要的一点是const和*的位置,当*在const的右边时,那么这个指针是一个变量,指向的是一个常量,常量不能修改,自然就不能修改内容;当*在const的左边时,那么指针是一个常量指针,不能再指向新的地址,指向的是一个变量,可以对内容作出修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值