C语言变量

变量的定义与分类

使用变量是要注意:

1变量必须先声明,后使用

2变量一旦声明就不可以更改其类型

3同一个作用域内不能命名重名的变量

变量的命名规则

1只能由字母(包括大小写)、数字和下划线构成

2不能以数字开头

3长度不超过63字符

4字母区分大小写

5变量名不能使用关键字(int、if、while、return等)

变量的作用域

变量的作用域分为局部作用域和全局作用域

1局部作用域:仅在函数、代码块或文件内可见

2全局作用域:在整个程序都可见

变量的生命周期

局部变量和全局变量

局部变量作用域仅限函数或代码块内部,生命周期通常随函数的调用开始和结束,静态局部变量除外,生命周期贯穿整个程序运行。通常存储于栈中。

全局变量作用域可以拓展至整个程序,生命周期从程序的开始到结束,静态全局变量只能在声明它的文件中访问。存储在静态存储区。

使用static关键字声明的变量称为静态变量,既可是局部变量也可以是全局变量。静态变量的生命周期从程序运行时创建,直到程序运行结束。

整型变量int

原码、反码、补码

原码、反码、补码是计算机中表示有符号整数的三种编码方式,主要用于解决计算机中减法运算和负数表示的问题。

计算机8位有符号二进制:最高位为符号位,0表正数、1表负数,其余为数值位。

原码:人类可读编码。正数符号位为0,负数为1,数值位为数字本身二进制。缺陷是0有正负两种编码,且无法直接做正负加减运算,机器不使用。

反码:运算过渡编码。正数反码等于原码;负数符号位不变,数值位全部取反,仍存在双0问题,仅作计算中间步骤。

补码:机器唯一存储运算编码。正数三码统一;负数补码=反码+1。唯一0编码,可将减法转为加法(a-b=a+(-b补码)),简化硬件。

速记口诀:正数三码相同,负数反码取反留符号,补码反码加一。

统一举例

+5:原码10000101 → 反码11111010(符号不变、数值取反) → 补码11111011(反码+1)

整形变量分类

大端模式:高字节存储在低地址

小端模式:低字节存储在高地址

unsigned 和 signed 

相同点:都是在一段存储空间存储的数字 计算方法一样

不同点:混合判断时格式转换不同

溢出后的取值不算严格上的不同点,只是表示方法不同,计算方式是一样的

printf () 的表示

% d 或 % i:用于输出有符号的十进制整数

% u:用于输出无符号的十进制整数

% o:用于输出八进制整数

% x 或 % X:用于输出十六进制整数(% x 使用小写字母,% X 使用大写字母)

在 printf 中,还可以使用修饰符指定不同大小的整型变量: % h:用于表示短整型(short)

% l:用于表示长整型(long)

% ll:用于表示长长整型(long long)

可以通过修饰符来控制输出的宽度、对齐方式、填充字符等: 宽度:指定输出字段的最小宽度。 -(左对齐):默认情况下,输出是右对齐的,使用 - 可以使其左对齐。 0(零填充):用零来填充空白位置,而不是默认的空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值