学习笔记1:强制转换
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
float f = 5.75;
printf("(int)f=%d,f=%f\n", (int)f, f);
}
注1:float是实型(带小数点)
int是整型
注2:(float)a 表示把a强制转换为实型
(int)(x+y) 表示把x+y的结果强制转换为整型
注意带括号!
运行结果:
学习笔记2:运算符
编程① %表示计算余数
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
printf("7÷2=%d......%d\n", 7 / 2, 7 % 2);
}
运行结果:
编程②
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
printf("%d\n", 100 % 3);
}
运行结果:
编程③ 除号“/” (进度日志2中有相关内容)
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
printf("\n\n%d,%d\n", 20 / 7, -20 / 7);
printf("%f,%f\n", 20.0 / 7, -20.0 / 7);
}
运行结果:
学习笔记3:运算符的优先级和结合性
优先级 | 运算符 | 结合性 |
(最高) | () [ ] —> . | 左→右 |
! ~ ++ -- + - * & sizeof | 右→左 | |
* / % | 左→右 | |
+ - | 左→右 | |
<< >> | 左→右 | |
< <= > >= | 左→右 | |
== != | 左→右 | |
& | 左→右 | |
^ | 左→右 | |
| | 左→右 | |
&& | 左→右 | |
|| | 左→右 | |
? : | 右→左 | |
= += -== *= /= %= &= ^= |= <<= >>= | 右→左 | |
(最低) | , | 左→右 |
学习笔记4:自增自减运算符
++是自增符, --是自减符
有以下形式:
++i是i自增1后再参与其他运算
--i是i自减1后再参与其他运算
i++是i参与运算后,i的值再自增1
i--是i参与运算后,i的值再自减1
编程①
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
int i = 8;
printf("%d\n", ++i);
printf("%d\n", --i);
printf("%d\n", i++);
printf("%d\n", i--);
printf("%d\n", -i++);
printf("%d\n", -i--);
}
运行结果:
编程②
#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
int i = 5, j = 5, p, q;
p = (i++) + (i++) + (i++); 括号的优先级最大,应先算括号里
q = (++j) + (++j) + (++j);
printf("%d,%d,%d,%d", p, q, i, j);
}
运行结果: