常量和宏定义|学习笔记

简介: 快速学习常量和宏定义

开发者学堂课程【你的第一门 C 语言课常量和宏定义】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/444/detail/5455


常量和宏定义


目录:

一、变量

二、常量

三、定义符号常量

四、标识符 (identifier)

五、字符串常量


一、变量

变量,就是在内存中找一个适当的空间并且命名存放数据。

图片11.png

指定字符型数据 'a' 取名为 c。名字只要符合变量命名规则即可。存放的内容是可以改变的。字符型只占一个字节只能存放字符。

图片12.png

声明一个整型变量520叫做 love,能够存放一个整数。一个整型比一个字符型大 'a' 可以存放到520的位置但不建议这么做。

图片13.png

声明浮点型数据3.142593命名为pi,这个时候3.142593就不能存放到520的位置,会造成精度缺失。如果小数特别多可用double数据类型

 

二、常量

什么是变量呢?

在程序运行过程中它的值不能被改变,就称之为变量。变量可以改变,变量是不可以改变的。

比如说刚才的字符 'a' 就是常量,就是代表一个字符或一个数字。并且不能被改变。

C 语言常见的常量有数字,叫做整型常量。

实型常量,就是实数,带有小数的就是实数。

字符常量,字符常量包括普通字符如 'A',和转义字符如 '\n'。

字符串常量,用双引号括起来。是相关的值就不能改变了。

符号常量,比较特殊,使用之前必须先定义。


三、定义符号常量

格式:  #define 标识符 常量

//这种方式称为宏定义,现在只需要理解 #define 就是把程序中所有出现的标识符都替换为后面的常量就可以了。相关实例:

- #define URL "http: //www. fishc. com"

//表示用URL去替换后面的网址,后面例子都是同理的。

- #define NAME "鱼C工作室""

- #define BOSS "小甲鱼"

- #define YEAR 2010

- #define MONTH 5

- #define DAY 20

//像NAME等都是符号常量。

//使用大写字母为符号常量,小写字母为变量,由此来加以区分。

实例代码:

#include
//#开头为预处理命令,写在开头位置。输入注意标点符号。
#define URL "http:/ /www. fishc. com"

#define NAME "fa CT 4 "

#define BOSS"JFf "

#define YEAR 2010

#define MONTH 5

#define DAY 20

//#define后面不需要加;
int main( )

{printf("%s成立于%d年%d

月%d\ n", NAME, YEAR, MONTH, DAY) ;

printf("%s是%s创立的.....\n", NAME ,BOSS) ;

printf("%s的域名是%s\n", NAME, URL);

//%s接的是字符串。

传入 NAME,然后接着用鱼 C 工作室替换掉。

//如果没有宏定义就得用用鱼 C 工作室替换掉所有的 NAME。
return 0;

}

执行结果如预期一样所有的 NAME 都被用鱼 C工作室替换掉:

图片14.png


四、标识符(identifier)

在 C 语言中标识符指一切的名字,比如符号常量名就是标识符,变量名也是标识符。所以标识符的命名规范就和变量名的命名规范是一样的。

>标识符只能是英文字母 (A-Z,a-z) 和数字(0-9)或者下划线(_)组成。

- i_love_fishC_520

>第一个字母必须是字母或者下划线开头。

>标识符区分大小写。

- FISHC≠fishc

>不能使用关键字来命名标识符。


五、字符串常量

图片15.png

用单引号括起来的是字符,编译器编译的时候只需要为每个字符一个一节的空间就够了。用双引号括起来的是字符串,那么编译器在编译时就需准备对应字符的空间量来存放。

但有一个问题编译玩后操作系统如何去判断一个字符串的长度。在知道一个字符串的开头之后怎么去找字符串的结尾?

如果不知道在哪里结束那么内存就是连续的会不断的读取一下。那就会出问题。

所以为了解决这个问题,C 语言的作者就用了一个特殊的字符来标志字符串的结束位置。当操作系统读取到这个特殊字符后就结束读取。这个特殊字符就是\0。用于表示一个字符串的结束位置。每个字符后会自动添加一个\0。

相关文章
|
14天前
|
编译器 C语言
【C语言】宏定义在 a.c 中定义,如何在 b.c 中使用?
通过将宏定义放在头文件 `macros.h` 中,并在多个源文件中包含该头文件,我们能够在多个文件中共享宏定义。这种方法不仅提高了代码的重用性和一致性,还简化了维护和管理工作。本文通过具体示例展示了如何定义和使用宏定义,帮助读者更好地理解和应用宏定义的机制。
35 2
|
6月前
|
安全 数据库连接 C++
C++一分钟之-C++中的常量与宏定义
【6月更文挑战第18天】**C++编程中,常量(`const`和`constexpr`)确保值不变,用于配置、计算和逻辑控制。宏定义是预处理阶段的文本替换,适用于条件编译和简化代码。注意`const`的正确使用,避免过度的`const_cast`。宏可能导致命名冲突、副作用和类型安全问题,应谨慎使用。优选类型安全的常量定义,以提升代码质量和可维护性。**
81 5
|
7月前
|
存储 编译器 C语言
C语言中的变量与常量
C语言中的变量与常量
68 0
|
7月前
|
存储 C语言
C语言中的变量与常量:深入解析
C语言中的变量与常量:深入解析
163 0
|
7月前
|
存储 C语言
C语言变量和常量
C语言变量和常量
|
7月前
|
C语言
详解C语言可变参数列表(stdarg头文件及其定义的宏)
详解C语言可变参数列表(stdarg头文件及其定义的宏)
101 0
|
算法 C语言 C++
认识C语言 Day_1 >变量、常量
认识C语言 Day_1 >变量、常量
|
C语言
C语言变量与常量
C语言变量与常量
|
C语言
C语言变量常量
C语言变量常量
100 0
|
编译器 C语言
C语言的常量和extern
C语言的常量和extern
94 1