3. C语言 变量与常量

3.1 C 中的变量

        变量其实只不过是程序可操作的存储区的名称。

        C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,

        该范围内的值都可以存储在内存中,运算符可应用于变量上。

        变量的名称可以由字母、数字和下划线字符组成。

        它必须以字母或下划线开头。

        大写字母和小写字母是不同的,因为 C 是大小写敏感的。

        C 语言也允许定义各种其他类型的变量,比如枚举、指针、数组、结构、共用体

3.1.1 变量的定义

        变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。

        变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表

type variable_list;

        type 必须是一个有效的 C 数据类型,可以是 char、w_char、int、float、double、bool 或任何用户自定义的对象

        variable_list 可以由一个或多个标识符名称组成,多个标识符之间用逗号分隔。

        常变量   const int a = 123;

3.1.2 变量声明

        变量声明向编译器保证变量以给定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。变量声明只在编译时有它的意义,在程序连接时编译器需要实际的变量声明。

        当使用多个文件且只在其中一个文件中定义变量时(定义变量的文件在程序连接时是可用的),变量声明就显得非常有用。

        使用 extern 关键字在任何地方声明一个变量。

        虽然在程序中多次声明一个变量,但变量只能在某个文件、函数或代码块中被定义一次。

3.2 左值(Lvalues)和右值(Rvalues)

        左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。

        左值可以出现在赋值号的左边或右边。

        右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。

        右值是不能对其进行赋值的表达式,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

3.3 C 中的常量

        常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。

        常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。

        常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

3.3.1 整数常量

————  如1000,123,0,-345

        整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。

        整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。

表示内容

类型

85

/* 十进制 */

0213

/* 八进制 */

0x4b

/* 十六进制 */

30

/* 整数 */

30u

/* 无符号整数 */

30l

/* 长整数 */

30ul

/* 无符号长整数 */

3.3.2 浮点常量

        ————  十进制12.345,0.567,-12.34

        ————  指数形 12.34e3(表示12.34×10-25),e后面必须为整数。

        浮点常量由整数部分、小数点、小数部分和指数部分组成。使用小数形式或者指数形式来表示浮点常量。

        当使用小数形式表示时,必须包含小数点、指数,或同时包含两者。

        当使用指数形式表示时,必须包含整数部分、小数部分,或同时包含两者。

        带符号的指数是用 e 或 E 引入的。

3.14159

/* 合法的 */

314159E-5L

/* 合法的 */

510E

/* 非法的:不完整的指数 */

210f

/* 非法的:没有小数或指数 */

.e55

/* 非法的:缺少整数或分数 */

3.3.3 字符常量

        ————  普通字符 ‘a’, ’b’, ’#’

        字符常量是括在单引号中,例如,'x' 可以存储在 char 类型的简单变量中。

        字符常量可以是一个普通的字符(例如 'x')、一个转义序列(例如 '\t'),或一个通用的字符(例如 '\u02C0')。

        在 C 中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。

        //转义序列码:

转义字符

效果

\'

一个撇号

\"

一个双撇号

\\

一个反斜线

\a

警告

\b

退格

\f

换页

\n

换行

\r

回车

\t

一个Tab位

\v

垂直制表符

\ooo

一到三位的八进制数

\xhh

一个或多个数字的十六进制数

%%

输出一个%

\?

? 字符

3.3.4 字符串常量

        ————  字符串常量  “Hello,World!”

        字符串字面值或常量是括在双引号 "" 中的。

        一个字符串包含类似于字符常量的字符:普通的字符、转义序列、通用的字符。

        使用空格做分隔符,把一个很长的字符串常量进行分行。

3.3.5 常量的定义

        符号常量  ————  #define  Pi  3.141592

        在 C 中,有两种简单的定义常量的方式:

        使用 #define 预处理器。

        使用 const 关键字。

#define 预处理器

#define identifier value

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

#undef

const 关键字

使用 const 前缀声明指定类型的常量

const type variable = value;

常量通常习惯定义为大写字母形式。

非常感谢您的支持!创作不易,转发备注出处!

自用展示内容,不定期更新维护内容,让我们把 C开发 变得更专业。

十年开发基本功,常年开班收徒(一年学徒制度),每年10个名额。

商业合作加微信,项目接包与外包。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值