【C语言】const修饰普通变量和指针

这篇具有很好参考价值的文章主要介绍了【C语言】const修饰普通变量和指针。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是苏貝,本篇博客带大家了解const修饰普通变量和指针,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
【C语言】const修饰普通变量和指针,c语言,开发语言


一.const修饰普通变量

用const修饰普通变量时,是在语法层面限制了变量的修改,但是本质上,变量还是变量,是一种不能被修改的变量。以下两种定义方式都可以:

    const int a = 10;
	int const b = 10;

变量的值不能修改,否则会报错
【C语言】const修饰普通变量和指针,c语言,开发语言

但变量的值可以通过指针进行修改:
【C语言】const修饰普通变量和指针,c语言,开发语言
所以为避免变量的值被修改,同时又需要使用指针指向变量,那么就让const修饰指针


二.const修饰指针

const 可以放在 * 左边 ,可以放在 * 右边 ,也可以放在 * 左右两边,这3种方式的意义各不相同

1.const 放在 * 左边

const 放在 * 左边限制的是指针指向的内容,也就是说:不能通过指针来修改指针指向的内容,但是指针变量是可以修改的,也就是指针可以指向其它变量

int main()
{
	const int a = 10;
	const int* p = &a;

	*p = 20;//err

	int b = 20;
	p = &b;//ok
	return 0;
}

2.const 放在 * 右边

const 放在 * 右边限制的是指针变量本身,指针变量不能再指向其它内容,但是可以通过指针变量来修改指针指向的内容

int main()
{
	const int a = 10;
	int* const p = &a;

	*p = 20;//ok

	int b = 20;
	p = &b;//err
	return 0;
}

3.const 放在 * 左右两边

const 放在 * 左右两边限制的是指针变量本身和指针变量指向的内容,也就是说:不能通过指针来修改指针指向的内容,指针也不能指向其它变量

int main()
{
	const int a = 10;
	const int* const p = &a;

	*p = 20;//err

	int b = 20;
	p = &b;//err

	return 0;
}

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️文章来源地址https://www.toymoban.com/news/detail-654432.html

到了这里,关于【C语言】const修饰普通变量和指针的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用C语言自定义头文件,声明的变量或者函数用extern和不同extern修饰有什么区别?

    在C语言中,当在头文件中声明变量或函数时,使用 extern 和不使用 extern 修饰有以下区别: 使用 extern 修饰变量: extern 修饰的变量只是声明,不分配存储空间。它表示该变量的定义在其他源文件中,需要在使用该变量的源文件中进行定义和分配存储空间。 不使用 extern 修饰的

    2024年02月10日
    浏览(49)
  • 【C语言】——认识指针变量和地址,以及指针变量类型的意义

    🎥 岁月失语唯石能言的个人主页         🔥 个人栏专: 秒懂C语言 ⭐ 若在许我少年时,一两黄金一两风      目录 前言 一、指针变量和地址 1.1 取地址操作符() 1.2 指针变量和解引用操作符(*) 1.2.1 指针变量 1.2.2 如何拆解指针类型 1.2.3 解引用操作符 1.3 指针变量

    2024年02月04日
    浏览(58)
  • 【C语言】——指针四:字符指针与函数指针变量

      在前面的学习中,我们知道有一种指针类型为 字符指针: c h a r ∗ char* c ha r ∗ 。下面我们来介绍它的使用方法。    使用方法:      如果我们想 存储字符串 ,可以用什么方法呢?之前我们一般都是用 字符数组 ,那还有什么办法呢?其实, 字符指针 也是可以

    2024年04月12日
    浏览(46)
  • C语言指针操作(二)指针变量作为函数参数

    指针变量作为函数参数详解,形参和实参之间的值传递如何传递?如何改变指针变量所指向的变量? 函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型;它的作用是将一个变量的地址传送到另一个函数中。 关于地址,指针,指针变量可以参考一下这篇

    2024年02月04日
    浏览(50)
  • c语言---函数指针变量

    函数指针变量应该是用来存放函数地址的,未来通过地址能够调用函数的。 那么函数是否有地址呢? 接下来看看: 运行结果: 确实打印出来了地址,所以函数是有地址的,函数名就是函数的地址,当然也可以通过 函数名 的方式获得函数的地址。这两个结果一模一样。 如果

    2024年02月22日
    浏览(38)
  • 【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)

    🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C++笔记专栏: C++笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 上篇回顾:上篇我们通过数组名为切入口引出数组与指针间的关系,本篇将介绍不同类型的指针变量在不同场景中的使用 对于字符和字符串,C语言

    2024年04月25日
    浏览(33)
  • 【C语言深度解剖】float变量在内存中存储原理&&指针变量与“零值”比较

    大家好好我是沐曦希💕 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。 例如: 十进制中的5.0转换成二进制

    2024年02月14日
    浏览(41)
  • 8.8 【C语言】动态内存分配与指向它的指针变量

    栈:全局变量和局部变量,全局变量是分配在内存中的静态存储区的,非静态的局部变量是分配在内存中的动态存储区的。 堆:数据临时存放在一个特别的自由存储区。 对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc,calloc,free,realloc这四个函数。 1.用mallo

    2024年02月11日
    浏览(45)
  • C++中const,指针和引用

    在线C/C++编译器,可以试着运行代码。 在C语言中,const修饰的量称为 常变量 (在编译过程中,const就是当成变量的编译生成指令的),不可以直接修改它的值,但是可以 通过地址进行修改其对应的值 。并且const修饰的变量可以不进行初始化,编译器最后默认赋值为0。 然而在

    2024年02月13日
    浏览(41)
  • 深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

    C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 C 中的变量和 C 语言中的作用域规则 C 中的数据类型 运算符及其类型 C 语言中的类型转换 参考文章: C 语言注释

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包