前言
在C语言学习中,最先学习到的就是变量,最常用到的也是变量,但在学习之后的使用中常常因为基础不牢靠造成问题,制造了许多麻烦,所以出一期关于C语言中变量的内容,与大家一起学习。
什么是变量
C语言中的变量的本质就是一段内存地址,这段内存地址存储着数据。给每个内存地址取的名字就叫做变量名,用于在程序中引用该变量。变量还具有一个特定的数据类型,这决定了它可以存储什么类型的数据(如整数、浮点数、字符等)以及它需要多少内存空间。
变量的命名规则
C语言中变量的命名遵循一定的规则,以确保代码的可读性、可维护性和避免命名冲突。
-
只能包含字母、数字和下划线(_):变量名只能由字母(a-z, A-Z)、数字(0-9)以及下划线(_)组成。注意,变量名不能以数字开头。
-
区分大小写:C语言是大小写敏感的,因此
Var
、var
和VAR
被视为三个不同的变量名。 -
不能使用C语言的保留字:保留字是C语言中已经定义并赋予特定意义的单词,如
int
、float
、if
、else
等。不能使用这些保留字作为变量名。 -
命名应尽量具有描述性:虽然C语言在命名上提供了很大的灵活性,但好的命名习惯是尽量让变量名具有描述性,以便其他程序员(或未来的你)能够更容易地理解代码。例如,使用
studentAge
而不是sa
或age1
来表示一个学生的年龄。
变量类型
- 整型(Integer Types)
- int:整型变量用于存储整数,其大小(即占用的字节数)依赖于编译器和操作系统。在大多数现代编译器中,
int
通常占用4个字节(32位),但这不是强制性的。其存储范围大致为-2^31到2^31-1(对于有符号整数)或0到2^32-1(对于无符号整数,尽管C标准中并未直接定义无符号int
类型,但通常可以通过unsigned int
来声明)。 - short:短整型变量也是用于存储整数,但其占用的字节数通常比
int
少,通常为2个字节(16位)。其存储范围也因此比int
小。 - long:长整型变量用于存储比
int
更大范围的整数。在32位系统中,long
通常也占用4个字节,但在64位系统中,它可能占用8个字节。C语言标准只要求long
至少和int
一样大。 - long long:这是一个比
long
更大的整型,用于存储更大范围的整数。它通常占用8个字节(64位)。
- int:整型变量用于存储整数,其大小(即占用的字节数)依赖于编译器和操作系统。在大多数现代编译器中,
- 浮点型(Floating-Point Types)
- float:单精度浮点型变量用于存储带小数点的数。它占用4个字节,提供大约7位十进制精度的浮点数表示。
- double:双精度浮点型变量提供比
float
更高的精度,通常占用8个字节。它能够表示更大范围的浮点数,并且具有更高的精度。
- 字符型(Character Types)
- char:字符型变量用于存储单个字符,如字母或标点符号。在C语言中,字符实际上是以整数形式存储的,因为每个字符都对应着一个ASCII码值。
char
类型通常占用1个字节。
- char:字符型变量用于存储单个字符,如字母或标点符号。在C语言中,字符实际上是以整数形式存储的,因为每个字符都对应着一个ASCII码值。
其他类型
除了上述基本数据类型外,C语言还提供了其他类型的变量,如枚举(enum
)、结构体(struct
)、联合体(union
)和指针(*
)等。这些类型允许程序员以更复杂的方式组织和处理数据。(不进行细讲,会开设单张进行讲解)
运算法则
四则运算
关系运算
C语言中的关系运算(也称为比较运算)用于比较两个操作数的大小或是否相等,并返回一个布尔值(在C语言中,这个布尔值以整型形式表示,0表示假(false),非0表示真(true),但通常使用1表示真)。关系运算符主要包括以下几种:
-
等于 (
==
): 检查两个操作数是否相等,如果相等,则条件为真。 -
不等于 (
!=
): 检查两个操作数是否不相等,如果不相等,则条件为真。 -
大于 (
>
): 检查左边的操作数是否大于右边的操作数,如果是,则条件为真。 -
小于 (
<
): 检查左边的操作数是否小于右边的操作数,如果是,则条件为真。 -
大于等于 (
>=
): 检查左边的操作数是否大于或等于右边的操作数,如果是,则条件为真。 -
小于等于 (
<=
): 检查左边的操作数是否小于或等于右边的操作数,如果是,则条件为真。
关系运算的结果是一个整型值,通常在条件表达式(如if
语句、while
循环等)中使用,而不是直接作为数值进行计算。
逻辑运算
C语言中的逻辑运算用于处理逻辑表达式,这些表达式的结果要么是真(true),要么是假(false)。在C语言中,逻辑表达式的结果以整型值表示,其中0表示假(false),非0值(通常是1)表示真(true)。逻辑运算符主要包括以下几种:
-
逻辑与(
&&
):仅当两个操作数都为真时,结果才为真。如果任一操作数为假,则结果为假。 -
逻辑或(
||
):当两个操作数中至少有一个为真时,结果为真。如果两个操作数都为假,则结果为假。 -
逻辑非(
!
):这是一个一元运算符,用于反转其操作数的真假值。如果操作数为真,则结果为假;如果操作数为假,则结果为真。
位运算
C语言中的位运算(Bitwise Operations)是在整数类型数据(如int、char等)的二进制表示上直接进行操作的运算。这些操作允许你以位(bit)为单位对数值进行处理,比如设置、清除或切换特定的位,以及执行位级别的算术和逻辑运算。位运算符主要包括以下几种:
-
按位与(
&
):对两个数的二进制形式进行逐位比较,只有两个相应的位都为1时,结果位才为1,否则为0。 -
按位或(
|
):对两个数的二进制形式进行逐位比较,只要两个相应的位中有一个为1,结果位就为1;只有当两个相应的位都为0时,结果位才为0。 -
按位异或(
^
):对两个数的二进制形式进行逐位比较,如果两个相应的位不同,则结果位为1;如果相同,则结果位为0。 -
按位取反(
~
):这是一个一元运算符,用于对其操作数的二进制表示进行逐位取反操作,即0变成1,1变成0。 -
左移(
<<
):将一个数的二进制表示向左移动指定的位数,移动过程中超出的位将被丢弃,而在右侧新增的位将用0填充。 -
右移(
>>
):将一个数的二进制表示向右移动指定的位数,移动过程中超出的位将被丢弃。对于有符号整数,新增的位通常用符号位(即最高位的值)填充;对于无符号整数,新增的位用0填充。