
文章目录1.基本数据类型、表达式及运算符1.1 C语言中链接数据类型的种类1.2 基本数据类型1.2.1 整型1.2.2 字符型1.2.3 浮点型1.2.4 缺省类型空类型void1.2.5 泊尔类型bool1.3 printf终端打印工具1.4 常量与变量1.5 表达式1.6 类型转换1.7 运算符1.7.1 算数运算符1.7.2 赋值运算符1.7.3 三目运算符1.7.4 逗号运算符和sizeof( )运算符1.7.5 关系运算符1.7.6 逻辑运算符1.7.7 位运算符运算符优先级1.基本数据类型、表达式及运算符本章思维导图此处为C语言汇总版:【C 语言md编辑器版】从0基础开始到熟练掌握【完整篇,共9部分】1.1 C语言中链接数据类型的种类基本数据类型整型字符型浮点型缺省型空类型void泊尔类型bool构造数据类型指针类型1.2 基本数据类型在学习数据类型之前我们可以先学习两个关键字和转义字符、格式控制符、格式修饰符有助于学习不同数据类型的大小。 运用sizeof( )关键字可以获取数据类型在内存中所占的字节数。 运用printf( )可以在终端打印引号内的内容。转义字符是通过特定的符号序列表示特殊字符或操作的方式常用于处理不可打印字符或具有特殊意义的字符。格式控制符也被称为格式化字符串或格式化标识符。它们是用于指定数据格式的特殊字符序列。1.2.1 整型整型数据如int、short、long在内存中以补码形式存储。有符号整型可以表示正数也可以表示负数最高位为符号位0正数 1负数其他位位数据位正数的补码原码 负数的补码反码-1例如-2026原码1000 0111 1110 1010反码1111 1000 0001 0101补码1111 1000 0001 0110无符号整型仅能表示正数最高位为符号位整型数据的溢出例如unsigned short 最大值1?最大值1----》最小值最小值-1-.–》最大值●short短整型内存中2字节 无符号0000 0000 0000 0000(最小值0) ——1111 1111 1111 1111(最大值65535) 有符号1000 0000 0000 0000(最小值-32768) ——0111 1111 1111 1111(最大值32767)●int整型内存中为4字节●long长整型内存中为8字节总结初学C语言时int类型应该能满足大多数程序的整数类型需求。尽管如此还应了解一下整型的其他形式。C语言提供3个附属关键字修饰基本整数类型:short、long和unsigned。应记住以下几点short int类型(或者简写为short)占用的存储空间可能比int类型少常用于较小数值的场合以节省空间。与int类似short是有符号类型。long int或long占用的存储空间可能比int多适用于较大数值的场合。与int类似long是有符号类型。long long int或long long(C99标准加入)占用的储存空间可能比long多适用于更大数值的场合。该类型至少占64位。与int类似long long是有符号类型。unsigned int或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如16位unsigned int允许的取值范围是0-65535而不是-32768~32767。用于表示正负号的位现在用于表示另一个二进制位所以无符号整型可以表示更大的数。在C90 标准中,添加了 unsigned long int 或 unsigned long 和 unsigned int 或 unsignedshort 类型. C99 标准又添了 unsigned long long int 或 unsigned long long.在任何有符号类型前面添加关键字signed可强调使用有符号类型的意图。例如short、shortint、signed short、signed short int 都表示同一种类型.1.2.2 字符型在所有的编程语言中字符型数据都是以ASCII码(美国信息交换标准代码)的形式保存每一个字符都对应着一个编码这个编码其实是一个整数来的编码范围0 ~ 127。因此字符型数据也可以当作整形数据进行运算。ASCII码表如下1.2.3 浮点型用来表示小数的数据类型。单精度浮点型float精度范围6-8位内存中占的字节数4IEEE标准规定double类型在内存中符号位1bit、指数位8bits、尾数位23bits方式存储。8.125符号位01000.001——1.000001 2^3指数位1273130——1000 0010尾数位00000100000000000000000内存位0100 0001 0000 0010 0000 0000 0000 00000x41020000双精度浮点型double精度范围12-16位内存中占的字节数8EEE标准规定double类型在内存中符号位1bit、指数位11bits、尾数位52bits方式存储。8.125符号位01000.001——1.000001 2^3指数位102331026——100 0000 0010尾数位00000100000000000000000…(1后有46个0)内存位0100 0000 0010 0000 0100 0000 0000 0000…0x40204000…注意浮点数据在储存时可能出现精度损失。1.2.4 缺省类型空类型void函数的形参和返回值不返回参数、不返回数据。用在函数和指针部分目前暂做了解1.2.5 泊尔类型bool结果true/false#includestdio.h#includestdbool.hintmain(){boolatrue;boolbfalse;printf(sizeof(a):%d true:%d false:%d\n,a,a,b);return0;}//输出结果sizeof(a):1true:1false:01.3 printf终端打印工具用法:可以向终端打印出“”里面的内容当遇到%开头的格式控制符时将格式控制符换成逗号后面的值。格式控制符号意义%d以十进制整型数据int方式打印%ld以十进制整形数据(long)方式打印%c以字符方式打印%f以float类型控制打印%lf以double类型控制打印%u以无符号整形数据方式打印%lu以无符号长整型方式打印1.4 常量与变量C 语言操作的对象。常量在程序运行过程中值不会发生改变的量叫做常量。整型常量不带任何后缀的整型常量默认为signed int类型。u无符号 L长整型 十进制整型常量123 123L 123ul 123u 八进制整型常量0123 0123L 0123uL 0123u 十六进制整型常量0x123字符型常量ASCII 表‘字母/数字/特殊符号’—— 都是字符特殊字符特殊字符符号输出\00\a响铃\b退格\t横向制表符\v纵向制表符\n换行符\r回车符\\\\\\(加三位数字不足三位前面补 0)八进制的数\x两位数字十六进制数%%%/浮点型常量小数默认是double类型。后缀加上f就为float类型。例如double型3.14 3.14E2 3.14e-2float型3.14f 3.14E2f 3.14e-2f字符串常量“ ” 用双引号引起的内容即为字符串。注所有字符串在最后都会有‘\0’这个不可见字符作为字符串结束标志。标识符常量(宏定义)语法define 标识符 数值例#define PI 3.14注标识符一般都采用纯大写且只做代码的替换不做其他运算。变量在程序运行过程中值可以发生改变的量叫做变量。变量在 C 语言中的定义数据类型 名称变量名的命名规则由数字、字母、下划线组成其中数字不能作为开头需要避免与 C 语言关键字、库函数、系统函数重复名称一般具有代表意义命名规则种类驼峰法例MaxValueLinux 内核命名(下划线)例max_value变量的初始化语法数据类型 变量名 值变量的复制1.5 表达式定义使用关系运算符连接常量或变量构成的句子。注任何表达式都会有一个确切类型的结果。1.6 类型转换显示强制转换语法目标类型 转换对象强制转换带精度数据时高精度会损失精度。强转不会改变原数据。隐式类型转换转换规则此类型转换由操作系统完成。1.7 运算符1.7.1 算数运算符双目运算符 - * / %单目运算符自增运算符自减运算符-- 注i先用后加i先加后用求余运算符%必须是整型数据或与整型兼容的数据类型。1.7.2 赋值运算符-/*赋值运算符优先级14极低仅高于逗号,。例a 10 5——a (10 5)a b——a a b其余的均类似左值放在运算符左边的数只能是变量。右值放在运算符右边的数可以是变量、常量、表达式。两边需保持数据类型一致否则在某些情况下会出现数据改变。例如:int a 3.14; //此时a只能储存正数部分int a -100; unsigned int b 0;b a;//此时b会直接储存a所在内存的数据数据的符号位变为数据位数据改变。小空间数据类型放入大空间数据类型时从低位开始储存高位补符号位数据不改变大空间数据类型放入小空间数据,在小空间数据类型范围内数据不变反之高位截断1.7.3 三目运算符三个操作数。语法表达式1 表达式2 表达式3若表达式1成立则三目运算符的结果为表达式2反之结果为表达式3。1.7.4 逗号运算符和sizeof( )运算符逗号运算符逗号在式中为运算符优先级最低。在其余位置一般为分隔符。例num 2 3, 4 * 5, 6 - 4; //结果为5 num (2 3, 4 * 5, 6 - 4); //结果为2 printf(%d\n, num ); \\此时逗号为分隔符sizeof()用来获取数据类型/常量/变量/表达式的结果在计算机内存中占的字节数。返回结果unsigned long1.7.5 关系运算符!详细知识点请见章节3.3 分支结构。1.7.6 逻辑运算符||详细知识点请见章节3.3 分支结构。1.7.7 位运算符运算符优先级优先级运算符集合运算目数结合方向1()[]-.后缀运算符左→右2!~---(类型)*sizeof单目运算符右→左3*/%双目运算符左→右4-双目运算符左→右5双目运算符左→右6双目运算符左→右7!双目运算符左→右8双目运算符左→右9^双目运算符左→右10|双目运算符左→右11双目运算符左→右12||双目运算符左→右13?:三目运算符右→左14-*/%^|双目赋值运算符右→左15,逗号运算符左→右