C-week 1(2)-基础知识

这篇博客详细介绍了C语言的基础知识,包括运算符的隐式转换规则,赋值转换过程,printf函数的输出转换行为,强制类型转换的应用,自增自减操作,关系运算的注意事项,逻辑表达式的短路特性和逗号表达式的理解。此外,还讨论了算法与数据结构在程序设计中的重要性,以及控制结构如switch、while、do while和for循环的使用,以及break和continue语句的功能。

一.运算符

在这里插入图片描述

隐式转换
不同类型数据运算时先自动转换成同一类型。
各类型的级别高低如下:
char < short ≤ in t ≤ unsigned ≤ long ≤ unsigned long < float < double

在这里插入图片描述

若整数,双目运算符的两边一个是有符号另一是无符号数。转换规则如下:
首先看,有符号数的类型能否表示无符号数类型的所有取值范围,若可以,则都变成有符号数的类型;否则都变成无符号数的类型。转换的方法和赋值转换的规则相同。
注意:unsigned char 或 unsigned short 都会先转成int

unsigned int a = 2 ;
short b = -5 ;

结果:a + b > 0
unsigned  short a = 2;
int b = -5 ;

结果: a + b  < 0
unsigned int a =2 ;
int b = -5;

结果: a + b > 0

二.赋值转换

使赋值号右边表达式值自动转换成其左边变量的类型
同类型,有符号和无符号之间赋值,直接把等号左边的内存拷贝到等号右边变量的内存里。

unsigned int a = -3;//a的内存位图和-3的补码位图相同

长的赋给短的类型,把长的类型的低位,拷贝给短的类型
char ch = 0x1234; // ch获得的是0x34的位图

短的赋给长的类型,根据短的类型是否为有符号的。若为有符号的,符号位扩展到长类型的宽度,然后赋给长类型。若为无符号的,高字节填0,赋给长类型的

三.printf输出转换

printf把char、short提升到int型,再传给printf。把float提升到double类型再传给printf。

四.强制类型转换

强制转换得到所需类型的中间变量,原变量类型不变
可能发生精度损耗

五.自增自减 ++ - -

     j=3;  k=++j;  
     j=3;  k=j++;  
     j=3;  printf(%d”,++j);   
     j=3;  printf(%d”,j++);   
     a=3;b=5;c=(++a)*b;    
     a=3;b=5;c=(a++)*b; 

六.关系运算

关系表达式的值: 1 关系成立,0 关系不成立

应避免对实数作相等或不等的判断
如 1.0/3.03.0==1.0 结果为
可改写为:fabs(1.0/3.0
3.0-1.0)<1e-6

七.逻辑表达式的短路特性

在这里插入图片描述

八.逗号表达式

形式:表达式1,表达式2,…… ,表达式n
逗号表达式的值:等于表达式n的值

int a = 3, 4, 5;  //a = 3
int a = (3, 4, 5); // a = 5

九.算法+数据结构=程序

十 控制结构结合语句

switch

case 后跟 break

while

while结构是先判别、后执行的循环结构
while结构的循环体可以为空语句,即“;”

do while

至少执行一次循环体

for

for (   ;     ;     )  ;   // 死循环

break 与 continue

break: 跳出循环体
continue : 跳出本次循环

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值