标准C语言2

一、数据类型
为什么对数据进行分类:节约存储空间,节约运行速度
可以使用sizeof计算类型的字节数
整形:
signed:
signed char 1 -128~127
signed short 2 -32768~32767
signed int 4 2开头十位整数(正负20亿)
signed long 4/8 2开头十位整数(正负20亿)/9开头的十九位整数
signed long long 8 9开头的十九位整数

unsigned:
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~40亿
unsigned long 4/8 0~40亿/1开头二十位整数
unsigned long long 8 1开头二十位整数
注意:由于定义无符号数据时比较麻烦,标准库把这些无符号类型重新定义成需要包含头文件 stdint.h
uint8_t、uint16_t、uint32_t、uint64_t
int8_t、int16_t、int32_t、int64_t

浮点:
float 4
double 8
long double 12/16
注意:采用科学计数法,二进制与真实数据之间需要翻译,小数点后六位有效

模拟:
char 字符其实就是符号或图案,在内存中存储的是整数,需要显示时会根据ASCII表
‘\0’ 0 特殊字符,字符串的结束标志
‘0’ 48
‘A’ 65
‘a’ 97
bool 布尔 先有了C语言之后才有bool类型,所以C语言不可能有真正的布尔类型,
bool true false

二.变量与常量
变量:程序在运行期间数值可以变化的叫变量,相当于存储数据的盒子
定义:类型 变量名;
int num;
取名规则:
1、由字母、数字、下划线组成
2、不能以数字开头
3、不能与关键字(32)重名,能默写
4、见名知义(功能、类型、范围)
使用:
赋值:num=10;
参与运算:num*100;
printf scanf bool sizeof
注意:变量的默认值时随机的,为了安全要对它进行初始化,一般初始化为0

变量的输入、输出:
int printf(const char *format,…);
功能:输出数据
format:双引号包含的格式信息(占位符)
…:变量地址列表
注意:scanf需要的是变量类型和变量地址,变量地址=&变量名
返回值:输出字符个数
类型占位符:C语言通过站位方式来传递变量的类型
%hhu %hu %u %llu
%hhd %hd %d %lld
%f %lf %LF,

常量:程序在运行期间数值不可以变化的叫常量
字面值常量
100 默认int类型
100l long
100ll long long
100u unsigned int
100lu unsigned long
100llu unsigned long long
3.14 默认double类型
3.14f float
3.14l long double
‘a’
“hello world”

三、格式化输入输出
%nd 显示n个字符宽度,不够则补空格,右对齐
%-nd 显示n个字符宽度,不够则补空格,左对齐
%0nd 显示n个字符宽度,不够则补0
%n.m 显示n个字符宽度(小数点算一位),不够则补空格,m表示小数点后的位数
%g 不显示小数点后多余的零

四、运算符
自变运算符:++/-- 使变量的值自动加一或减一
前自变:变量的值立即加1,立即生效
后自变:该行语句结束才生效,下一行才生效
注意:不要一行代码中多次使用自变运算符。

算术运算符:+ - * / %(取余)
整数/整数没有小数点
/ % 除数不能为零,否则会产生浮点数例外,核心转储
*******(重点)== 变量尽量放在右边

关系运算符:>< >= <= == !=
比较的结果是0或1 比较结果还能继续参与运算

10 < n < 100 结果永远为真,与数学中的运算规则不同

逻辑运算符:&& || !
会把运算对象转换逻辑值,0转换为假,非0转换为真
A && B 一假即假
A | | B 一真即真
!A 求反
&& || 具有短路特性,党左边值可以确定表达式的结果,右边不再计算

三目运算符:运算对象由三部分
A?B:C; 判断A的值如果为真执行B,如果为假执行C
该语句中不能使用流程控制语句,因为它必须要有运算结果

赋值运算符:+= *= /= …
a += b;a = a+b;
a = b;a = ab;

位运算符:& | ~ ^ >> <<

五、类型转换
自动类型转换:
只有相同类型的数据才能进行运算,不同类型数据转换城相同类型再进行运算
转换规则(以不丢失数据为基础,适当牺牲一些空间):
1、字节少向字节多的转换
2、有符号向无符号转换
3、整型向浮点转换
强制类型转换:
(类型)数据 有丢失数据的风险,慎重使用
六、分支语句
1 if(表达式)//单分支
{
表达式值为真,执行此处代码。
}

2 if(表达式)//双分支
{
表达式值为真,执行此处代码。
}
else
{
表达式值为假,执行此处代码。
}

3 if(表达式1)//多分支
{
表达式1值为真,执行此处代码。
}
else if(表达式2)
{
表达式2值为真,执行此处代码。
}
else
{
表达式1和2都为假,执行此处代码。
}

你可能感兴趣的:(标准C语言2)