常量与变量
概念:
·表面:程序运行过程中取值可以改变的数据
·实际:变量其实代表了一块内存区域/单元/空间。变量名可视为该区域的标识。
整个变量分为三部分:
·变量名:这个只是变量的一个标识,我们借助变量名来存取数据。
·变量空间/存储单元:这个就是内存中分配的一块用来存放数据的空间/区域。
·数据/变量值:这个就是存放在变量空间中的数据
注意:我们把数据存放间变量名对应空间的过程称之为变量的赋值操作。
语法:
1[修饰符] 数据类型 变量列表;
命名规范
- 变量名可以由数字、字母(区分大小写)、分划线_、$组成,不能以数字开头。
- 不建议使用中文,也不建议使用拼音。
- 变量名不能与系统中已有的标识符重名。(比如关键字、保留字...,举例:int,signed,if,break...)
案例:
说明:
- 变量名定义是,利用同一个类型标识符可同时定义多个变量,各个变量之间使用,(英文逗号)分割。
- 定义变量后,如果未对变量进行初始值的赋予,则变量所代表的内存空间中的数据是随机安排的。
- 可以在变量定义的同时给变量赋值,这个操作称为变量的初始值,C语言允许对变量进行初始化。
- 初始值变量是,尽量做到类型相同,eg:long 1 =567L
- 整体数据在内存中存放方式
按照补码方式存放:
·正整数的补码就是将该数据转换为二进制格式。
·负整数的补码就是将该数据的绝对值转换为二进制格式,按位取反,并+1.
浮点数数据在内存中存放方式
Eg:
需求:将27.5以float类型存放:
解析:
·27.5的二级制为11011.1,指数表示法:1.10111 * 2 4
·指数:4,加上127,就是131,二进制1000 0011
·尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000用二进制表示就是(符号数位1位)0(指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000
·所以 单精度浮点型数据27.5 在内存中的存储方式如下
0 1000 0011 1011 1000 0000 0000 0000 000
字符数据在内存中的存放方式:
以ASCII码存放
字符的存在分为两种形式,ASCII码(编号,从0开始的正整数)和ASCII码值(数据,包括英文字母大小写,数字,特殊符号)
注意:ASCII码可以和整数进行数学运算
举例:
数据类型之间的转换
规则:不同的数据类型参与运算,需要转换为同一类型后运算
数值比较由小到大简单排序:
short<char<int<long<float<double
·隐式类转换
说明:编译系统自动完成,一般是低优先级类型向高优先级转换,这种被称为自动类型转换
语法:
举例:
·强制类型转换
说明:程序员自己实现,一般是高优先级类型向低优先级类型转换,这种称之为强制类转换(由大到小)
语法:
小数据类型 变量名 = (小数据类型)大数据类型变量;
举例:
注意:强制类型转换过程中,可能会出现精度缺失的问题。如果大类型数据范围<=小类型数据范围丢失,正常转换;如果大类型数据范围>小类型数据范围,此时丢失超出部分的数据,精度会缺失!
原则:类型转换并不会改变原来变量类型
运算符
单目运算符
说明:++ -- + - *
++a与a++的区别
· int a = 1,int x = a++; ++在后,先运算,后+1
· int a = 1,int x = ++a; ++在前,先+1,后运算
Eg:
总结:
分析上面的案例,我们发现,不管是 ++ 在前,还是 ++ 在后,计算数自身都会+1。区别在于运算的结果不一样。 ++ 在前,先自加1,后运算; ++ 在后,先运算,后自加1。
--a与a--的区别
· int a = 1,int x = a--; ++在后,先运算,后-1
· int a = 1,int x = --a; ++在前,先-1,后运算
总结:
分析上面的案例,我们发现,不管是++在前,还是++在后,计算数自身都会+1.区别在于运算的结果不一样。++在前,
双目运算符
说明 + - * / %
举例:
注意:
1.两个整数相除的结果是整数,小数部分被舍弃。想要其结果是实数,可在分子*1.0(隐式类型转换)
2.求模运算(取余预算)左右两边的操作数都必须是整数。如果是类似于3.0这样的数,是错误的。
关系运算符
什么是表达式?
表达式就是表达某种意思的式子。在C语言中,表达式指的是运算符连接操作数(变量|变量...)的式子。
注意:
有关系运算符构成的表达式称为关系表达式,关系表达式的值为boolean(布尔值)
·非0:关系成立,为真
·0:关系不成立,为假
逻辑运算法
说明:&&(与) ||(或) !(非)
·&&:逻辑与(且),符号两边的操作数都为真,结果才为真。
Eg:((5>4&&(5-4)>1,结果0
·||:逻辑或(或),符号两边的操作数只有一个为真,结果就是真。
Eg:((5>4||(5-4)>1,结果1
·!逻辑:逻辑反(取反),取反,非0为真,
Eg:!(!(5>4)),结果1
惰性运算
所谓的惰性运算,就是减少运算次数。
·短路与:&&的操作数,只要左边不成立0,直接返回假,不再校验右边。
·短路或:||两边的操作数,只要左边成立1,直接返回真,不再校验右边。
扩展..
ISO-8859-1:西欧编码,一般遇到直接改编码,针对文件
GBK:国标,中国标准编码/字符库,收录了大量的汉字+中文符号。针对文件内容。
UTF-8:全球标准,几乎收录了全球的各种字符集,包括GBK包含的常用汉字以及中文符号,针对文件内容。
ASCII:字符集,C语言字符就是以ASCII码进行存储。针对程序内部数据。
都看到这了不妨留下个点赞呗!!感谢大家收看,下期见!
标签:24,0000,运算,2024.7,++,笔记,int,变量名,变量 From: https://blog.csdn.net/weixin_65213187/article/details/140804867