关于const的用法简单举列子介绍

关于const的简单用法举列子介绍!

对于const,我想大部分人也是很陌生,毕竟在C语言语法中很少见,但是,笔者今天在学习C语言基础知识时候,见到了,经过一番苦思,及参考文献得到了一手的资料,于是兴趣走起,博客一篇来书写笔者的兴奋之情!

下面来看一下,笔者在“const” - C++ 搜索结果 (cplusplus.com)网站上面的搜索结果!https://cplusplus.com

 很简单,最大的结果便是没有结果,对于const,我想应该不是C语言中的库函数,所以便在该网站上找不到所需要的内容,但是经过摸索,仍然还是有迹可循!!

下面通过一段浅显易懂的代码来进行理解:请跟着笔者文章来理解const:

#include <stdio.h>
int main()
{
	int a = 10;
	a = 20;
	printf("a=%d\n", a);
	return 0;
}

我想,这段代码,读者100%都能理解

 对于代码的最后运转结果也没有任何疑问,毕竟这个是刚开始学习C语言时候就接触的内容!

下面对于const的讲解就建立在该段代码的基础之上,请大家仔细辨别:


#include <stdio.h>
int main()
{
	const int a = 10;    //加const前缀
	a = 20;
	printf("a=%d\n", a);
	return 0;
}

在上述代码中,笔者做了一个稍微的改变,仅仅增加了一个const前缀,但是却.......??

 对于该段代码vs直接就给报错,根本就是运行不出来,const在该段代码中,将a=10进行锁死了,不允许更改,根本就不能进行再次给a赋值!

有人或许会说,const不是c语言的语法,加上const前缀,肯定运行不出来,但是情况往往出现在意料之外:请看笔者用指针的方法来书写的代码:

#include <stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;

	*pa = 20;

	printf("a=%d\n", a);
	return 0;
}

这个是用指针的方法,通过&(取地址操作符)取a的地址,然后在进行赋值,这段代码对于初步学习过指针的人而言,也不是什么大问题!

代码的运行结果仍为a=20;

 但是,看似指针与笔者想要表达的:关于const的简单举列子介绍,毫无关联,但是将const  int  a=10通过指针来改变,将会出现意想不到的结果!

#include <stdio.h>
int main()
{
	const int a = 10;

	int* pa = &a;   //通过指针方法来进行取地址等操作
	*pa = 20;

	printf("a=%d\n", a);
	return 0;
}

前面已经书写过,用普通方法来打印const  int  a=10的值已经没有办法,直接报错!

但是用指针的方法却是可以打印出来!

代码的运行结果如下所示:

 这个方法还是通过取a的地址来进行更改a的数值!使得直接绕过了const的这个语法限制

但是:当对

int* pa = &a;   //通过指针方法来进行取地址等操作

这一段代码前面也加const前缀时候,又出现了锁死的情况,也是直接报错不能进行更改!

#include <stdio.h>
int main()
{
	const int a = 10;

	const int* pa = &a;
	*pa = 20;

	printf("a=%d\n", a);
	return 0;
}

下面是具体的代码运转报错情况!

 到此为止,笔者所知道的关于const的用法已经描述完,若有不足之处,请联系笔者更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念君思宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值