变量的简介

张开发
2026/4/11 10:14:43 15 分钟阅读

分享文章

变量的简介
一.进制1.二进制转十六进制0x是十六进制的标识-1也是255 0xFFFFFFFF二. 变量1.变量是什么变量是一个被命名的内存位置是用来存放数据的变量必须先声明后使用定义时指定名字和类型也可以指定初值2.存储类型:auto,局部变量作用在函数内或者块内static,静态变量作用域受限制本文件内使用其他文件不能extern,外部变量全局变量的默认属性本文件其他文件都可以register:建议编译器将变量放在寄存器中提高访问速度不能对这个变量取地址tyedef:用于定义类型3.数据类型int:整型short:短整型char:字符类型long:长整型float:浮点型double:双精度浮点型bool:布尔型void空类型sign:有符号整形unsigned:无符号整形void test(void){printf()} void是没有返回值没有参数4.命名规则只能由字母数字下划线组成不能以数字开头长度在63字符以内区分大小写不能有关键字5.使用变量注意1.变量必须先声明在使用2.变量定义了一个类型后无法再次更改另外类型3.同一个作用于内变量不能重复命名4.变量遮蔽在函数外定义该变量的值在函数内赋予该变量另外的值函数内的值就会把函数外的值遮蔽5.注意变量的站位与内存6.注意变量的初始值三.整型4个字节原码符号位加上真值的绝对值反码最高位的符号位不变其余取反不做减法做加法才出的反码补码正数的本身负数符号位不变取反码1存在0和-0的关系0000和11111-1r如果不用补码会加成1111-0不合适print(%d/n, sizeof(i))大端系统小端系统大端系统高字节存储在低地址低字节存储高地址小端系统高字节存储在高地址低字节存储低地址sign和unsign异同相同都是在一段存储空间存储的数字计算方法一样不同混合判断时格式转换不同转换规则在涉及多个不同数据类型的算术运算时编译器会按照特定规则将数据转换为相同的类型“较低”级别的类型-较高级别类型---以避免数据丢失char(8位)short int (16位)int(32位)longlong(64位)sign unsignint floatdoubleprintf 打印表示四.浮点型包含小数和整数一般默认为double型8个字节float4个字节longdouble 1216个字节赋值运算浮点型赋值整数自动补上小数给整数型赋值小数只取整数去掉小数乘除中只要有一个浮点型系统会把其他的也转换成浮点型五.字符型六.布尔型用于条件判断和逻辑操作1.看的明白2.七.静态变量既是局部也是全局静态局部修饰函数内部变量仅在当前函数可见但是生命周期贯穿整个程序静态全局只能在声明它的文件中#includestdio.h int sm(void) { static int b 0; b b1; return b; } int main(void) { int a 0; a sm(); printf(%d\n,a); a sm(); printf(%d\n,a); a sm(); printf(%d\n,a); } 结果123 static初始化一次就一直存在函数运行结束也不会消失 没有static结果就是111函数运行结束b消失再次运行就会重新赋值 如果是两个文件加上静态变量就会报错1.维护状态信息限制作用域2.限制作用域编译单片机驱动光强光敏温度感应延时函数都叫delay使用静态变量不会冲突3.性能优化不用每次进入函数都进行初始化七.指针指针是一个存储内存位置的变量指向另一个变量的存储位置通过指针可以间接访问或者操作变量的值int y 5;int *t y; t存储的是y的内存地址指针的加法p1相当于4个字节#includestdio.h int main(void){ int a 123952; int *b a; printf(%d\n,b); printf(%d\n,b1); printf(%d\n,*b); printf(%d\n,*(b1)); } 结果 6291140 6291144 123952 6291140

更多文章