C语言——基本数据类型与表达式
一.常用单位
位:最小的存储单位 存储0或1
字节:1个字节8位
字:字是自然存储单位,对于8位微机一个字8位,对于16位机一个字16位
二.基本数据类型
测试数据类型大小: printf("%d\n",sizeof(类型名));
char c = 255;
printf("%d\n",c) 输出有符号整数为-1 输出无符号整数为255
三.常量和变量
常量
1. 直接常量:在程序中直接引用的数据
整型:
十进制:
int型 32 -12
long int型 234L 32l
unsigned int型 345u 238U
unsigned long int 型 256ul 258UL
八进制:在数码前加数字 0
032u 0364L
十六进制:在数码前加0x a-f(A-F)代表10-15
0x1f 0x1FL
实型:
十进制形式: 由整数和小数组成,可以省略其中一部分,但不能同时省略(小数点不能省略)
12.35 35. 。689 (都是double型常量)
指数形式:在小数后面加E(e)表示指数
1e-2 1.5E10 35.56E-3 7.e-2 e(E)前必须有数字,后面必须是整数
在浮点数常量后面加F(f)表示float型 1e-2f
字符型:由一个字母或转义字符两边用单引号括起来表示 ‘a’ ‘\n’
字符常量在计算机内存放的值,为该字符的ASCII编码值 ‘0’ =48 ‘A’=65
字符常量也可以用他的ASCII码值表示 八进制用‘\ddd’表示 ddd代表3为八进制数 ‘\101’ 代表A ‘60’代表0
十六进制用‘xhh’表示 hh代表十六进制数 ‘\x41'代表A ‘\x30’代表0
转义字符:
字符串:由双引号括起来的零个或多个字符序列
在字符串中也可以使用转义字符 “please enter \"Y" or \"N"” 不加\ 输出please enter
字符串中可以包含空字符,空格字符,转义字符和其他字符 也可以包含汉字等文字符号
2.符号常量 :用标识符表示一个数据 (在程序中不能赋值)
定义 #define 标识符 常量数据
使用符号常量增强程序的可读性和可维护性
变量
基本要素:变量名 变量的数据类型 变量的值
变量名:由字母 数字 和下划线组成 且第一个字符必须是字母或下划线。
字母区分大小写,长度任意, 不能是关键字。
变量定义 给变量分配存储空间
变量初始化就是给变量赋初值,变量所标识的内存单元可能保留先前使用该单元时留下的内容
未赋初值的变量不代表该变量中没有数值,只是表明该变量中尚未定义特定的值。
类型: 整型变量 实型变量(单精度实型7位有效数字 双精度 15-16位) 字符变量
四.运算符与表达式
1.6类基本运算符和表达式
算术运算符和表达式 + - * / % 结合律自左向右
% 符号位 取操作数一 的符号
数据类型转换: 强制转换 :int (x+y)
隐式转换 char short —int—float—double
unsigned— int— long—double
赋值运算符和表达式 = 结合律 自右向左
数据类型不一致时 进行类型转换 int i;i=5.65 i为5
复合的复制运算符 += ,-= ,*= ,/= ,%= ,<<=(左移) ,>>= ,&= ,^=,|=
赋值表达式 格式 变量 赋值运算符 表达式
关系运算符和表达式 <,<=, >,>= , ==, != 结合律自左向右
关系表达式 只有两个值 0(假)或 1(真) 非0即为真
x=2 y=3 z=5 x>y为0 z>=y 为1
逻辑运算符和表达式 &&与(左侧为0 右侧不运算) ||或(左侧为1 右侧不运算) !非 优先级 !>&&>||
逻辑表达式 非0为真 0为假
条件运算符和表达式 ? : 唯一一个三目运算符
条件表达式 格式 式1 ?式2 :式3 式1为真 值为式2 式1为假 值为式3
逗号运算符和表达式 ,
格式 式1,式2 ......,式n 逗号表达式的值为 式n的值
2.自增自建运算符 ++ --
++i --i 先加(减)再用
i++ i-- 先用再加(减)
3.优先级
五.数据输入输出
1.数据输出
putchar 函数 向终端输出一个字符
printf 函数 %lm.n(格式字符) m为最小宽度 右对齐 长度超过正常打印 .n为保留n位小数
2.数据输入
getchar 函数 从输入设备 输入一个字符
scanf 函数 输入若干个任意类型的数据
格式 scanf(“格式”,参数)
%3d 长度为3的字符 %*3d 不读取