【C语言基础】const关键词的使用方法

:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
:文章若有幸对你有帮助,可点赞 收藏 ⭐不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处

文章目录

  • 一、const的作用
  • 二、const和define的区别
  • 三、const修饰指针
    • 3.1修饰指针的4种形式
    • 3.2如何理解指针变量
    • 3.3结论和记忆方法
  • 四、typedef与const
  • reference


一、const的作用

const是constant的缩写,就是常量的意思。const在C语言中用来修饰变量,表示这个变量是常量。
用const定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。意味着定义的时候就必须给它赋初值。

const int i = 14//这种表示方式以后i就只能等于14,无法改变

二、const和define的区别

阶段不同
define是预编译指令,定义的宏是在预处理阶段展开的,而const是普通变量的定义,是只读变量,且是在编译运行阶段使用的。

常量与变量
define定义的是常量,define定义的宏在编译后消失了,它不占用内存;
而const定义的常变量本质上仍是一个变量,具有变量的基本属性,有类型、占用存储单元,除了不能作为数组的长度,用const定义的常变量具有宏的优点,而且使用更方便。

有误类型检查:
define定义的对象没有数据类型,编译器只能机械地进行字符替换,没有类型安全检查,即会出现“边际问题”或者是“括号问题”。而const定义的是变量,有数据类型。

三、const修饰指针

3.1修饰指针的4种形式

const修饰指针有4种形式,区分清楚这4种即可全部理解const和指针。
第一种:const int *p;
第二种:int const *p;
第三种:int * const p;
第四种:const int * const p;

3.2如何理解指针变量

主要涉及到2个变量:
第一个是指针变量p本身;
第二个是p指向的那个变量(*p)。
一个const关键字只能修饰一个变量,所以弄清楚这4个表达式的关键就是搞清楚const放在某个位置是修饰谁的。

1.const int *p; p是一个指针,指针指向一个int型数据。p所指向的是个常量。
2.int const *p; p是一个指针,指针指向一个int型数据。p所指向的是个常量。
3.int *const p; p是一个指针,指针指向一个int型数据。p本身是常量,p所指向的是个变量
4.const int *const p; p是一个指针,指针指向一个int型数据。p本身是常量,指向的也是常量

3.3结论和记忆方法

1、const在前面,就表示const作用于p所指向的量。所以这时候p所指向的是个常量。
2、const在
后面,表示p本身是常量,但是p指向的不一定是常量。
const型指针有什么用?
char *strcpy(char *dst, const char *src);
字符串处理函数strcpy,它的函数功能是把src指向的字符串,拷贝到dst中。

四、typedef与const

(1)typedef int *PINT; const PINT p2; 相当于是int *const p2;
(2)typedef int *PINT; PINT const p2; 相当于是int *const p2;
(3)如果确实想得到const int *p;这种效果,只能typedef const int *CPINT; CPINT p1;
【C语言基础】const关键词的使用方法_第1张图片

reference

http://c.biancheng.net/view/217.html

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