常量和宏定义

简介: 一、变量二、常量三、定义符号常量四、标识符(identifier)五、字符串常量

 常量和宏定义

 

目录:

一、变量

二、常量

三、定义符号常量

四、标识符(identifier)

五、字符串常量

 

 

一、变量

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

image.png

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

image.png

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

image.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 <stdio. h>


//#
开头为预处理命令,写在开头位置。输入注意标点符号。
#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工作室替换掉:

image.png

 


四、标识符(identifier)
C语言中标识符指一切的名字,比如符号常量名就是标识符,变量名也是标识符。所以标识符的命名规范就和变量名的命名规范是一样的。
>
标识符只能是英文字母(A-Za-z)和数字(0-9)或者下划线(_)组成。
- i_love_fishC_520
>
第一个字母必须是字母或者下划线开头。
>
标识符区分大小写。
- FISHC
fishc
>
不能使用关键字来命名标识符。

 


五、字符串常量

image.png

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

 

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

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

 

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

 

相关文章
|
4月前
|
编译器 C++
C++程序中的常量
C++程序中的常量
37 0
|
3月前
|
安全 数据库连接 C++
C++一分钟之-C++中的常量与宏定义
【6月更文挑战第18天】**C++编程中,常量(`const`和`constexpr`)确保值不变,用于配置、计算和逻辑控制。宏定义是预处理阶段的文本替换,适用于条件编译和简化代码。注意`const`的正确使用,避免过度的`const_cast`。宏可能导致命名冲突、副作用和类型安全问题,应谨慎使用。优选类型安全的常量定义,以提升代码质量和可维护性。**
49 5
|
4月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
|
4月前
|
编译器
关键字static#define 定义常量和宏
关键字static#define 定义常量和宏
33 0
|
4月前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
4月前
#define定义常量和宏
#define定义常量和宏
31 0
|
4月前
|
C语言
详解C语言可变参数列表(stdarg头文件及其定义的宏)
详解C语言可变参数列表(stdarg头文件及其定义的宏)
82 0
|
编译器
#define 定义常量和宏
工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100
57 0
|
存储 C语言
【学习笔记之我要C】初识常见关键字、#define定义常量和宏
【学习笔记之我要C】初识常见关键字、#define定义常量和宏
100 0
【学习笔记之我要C】初识常见关键字、#define定义常量和宏
|
编译器 程序员 C语言
初识C语言(3)变量,常量,注释
初识C语言(3)变量,常量,注释
86 0