21.3.18 C语言新人成长day4

C语言基础知识

数据类型
为什么要对数据进行分类
1、现实社会中的数据是自带类别属性的
2、对数据进行分类可以节约存储空间,提高运行效率
C语言中数据分为两大类:自建类(程序员自己设计的,例如:结构、联合、类)、内建类(C语言自带)
整型:
signed 有符号
signed char 1个字节 -128~127
signed short 2 -32768~32767
signed int 4 正负20亿
signed long 4/8
signed long long 8 正负9开头的19位整数
unsigned 无符号
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~40亿
unsigned long 4/8
unsigned long long 8 0~1开头的20位整数
注意:由于定义无符号整数数据时比较麻烦,因此标准库把这些无符号类型重新定义成以下类型:
需要包含头文件 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’特殊符号
48 ‘0’
65 ‘A’
97 'a

变量与常量
什么是变量:程序运行期间数值可以变化的叫做变量,相当于存放数据的盒子
定义: 类型 变量名;
int num;
取名规则:
1、只能由数字、字母、下划线组成
2、不能以数字开头 int num1
3、不能与c语言关键词重名(32个),两天要记住。
4、见名知意(功能、类型、范围)
注意:变量的默认值是随机的,为了安全起见,一般初始化为0
数据类型:
内建类型:
void、char、short、int、long、float、double ——7
自建类型:
struct、union、enum、size of ——4
类型限定符:
auto、const、static、volatile、register、extern、typedef、singned、unsigned ——9
流程控制相关:
分支:
if、else、switch、case、default ——5
循环:
for、while、do ——3
跳转:
break、continue、goto、return ——4
变量的输入、输出:
int printf(const char *format, …);
功能:输出数据
format:双引号包含的格式信息(提示信息+占位符)
printf(“num=%d”,num);
… 变量名列表
返回值:输出字符的个数
int scanf(const char *format, …);
功能:输入数据
format:双引号包含的格式信息(占位符)
…:变量地址列表&
返回值:成功输入变量的
类型占位符:C语言通过类型占位符来传递变量的类型
%hhd %hd %d %ld %lld
%hhu %hu %u %lu %llu
%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

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

运算符
自变运算符 ++/-- 使变量的值自动的加、减1
前自变:++num --num 立即有效
后自变:num++ num-- 下一条语句才生效
注意:不要在一行代码中出现多个自变运算符

算术运算符:+ - * / %
/ % 除数不能为0,否则会产生浮点数例外,浮点数转储,程序直接挂掉
整数除以整数,结果没有小数点

关系运算符:> < >= <= == !=
num=0 10<num<100 永远为真,与数学的运算规则不同
比较结果返回0或1 ,比较的结果还能继续参与运算

逻辑运算符:&& || !
会先把运算对象转换为逻辑值,0转换假,非0值转换真
A && B: 一假即假
A||B : 一真即真
!A :求反
与&&和或||具备短路特性,当左边的值可以确定整个表达式结果时,右边的不再计算
三目运算符:运算对象由三个部分
A?B:C 判断A的值,如果为真执行B,如果为假执行C
该语句不能出现流程控制语句,因为它必须要有运算结果
赋值运算符: = += -= = /=
a +=b a=a+b
a
=b a=a*b
位运算符: & | ~ 《 》^
二:类型转换
自动类型转换:
只有相同类型数据才能进行运算,不同类型的数据转换成相同类型才能进行运算
转换规则(以不能丢失数据为基础,可以适当地牺牲一些空间)
1、字节少的向字节多的转
2、有符号的向无符号转
3、整型向浮点型转
强制类型转换:
(类型)数据 有丢失数据的可能,慎重使用

分支语句
关键词:if else switch case defualt
if(表达式)//单分支
{
表达式为真,则执行此处代码
}

if(表达式)
{
表达式为真,则执行此处代码
}
else
{
表达式为假,则执行此处代码
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值