转义符
思考:
如果我想用printf输出 33.3% 怎么做??
解决方法:33.3%%除此以外还有其他各种特殊效果,例如:如果我想换行怎么办?我想控制光标怎么办?
这些我们 通通都需要输入特定的符号,而这些符号在程序里面就叫转义符。
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。\\ 输出\字符,也就是在屏幕上显示一个\字符。
\' 输出'字符,也就是在屏幕上显示一个'字符。
\" 输出"字符,也就是在屏幕上显示一个"字符。
scanf函数的简单使用
思考:如果,我们想拿到用户输入的东西,怎么办?解决:我们需要使用scanf()这个函数
1.scanf的作用:在程序运行到scanf的时候,接收用户输入的一些数据,并存储在变量之中
2.scanf的语法:scanf("格式控制字符串",变量地址列表);
语义:格式控制字符串里写占位符,占位符用来接收用户输入1个什么类型的数据,后面写变量的地址,使用&符号可以取到变量的地址,代表将用户输入的对应的数据存到这个变量里。
3.scanf的特点:阻塞式函数:即运行到scanf时,除非用户输入完数据,否则会一直停在scanf处等待用户输入
4.scanf函数中的占位符:
代表的意义: 要求用户输入1个什么类型的数据. 所以后面给的变量的地址的那个变量的类型要和
格式控制符保持一致.
%d 代表要求用户输入1个整型的数据.
%f 代表要求用户输入1个单精度的小数.
%lf 代表要求用户输入1个双精度类型的小数.%c 代表要求用户输入1个char类型的数据.
5.写完scanf一定要注意后面接变量地址,并且接同类型的变量地址,否则取到的东西会很异常
scanf运行原理
1). 用户从控制台输入的数据是先存储在1个叫做缓冲区地方
2). 当scanf函数准备为变量赋值的时候.先看看缓冲区中有没有数据
如果缓冲区中没有合适的数据 才会暂停程序让用户从控制台输入如果缓冲区中有合适的数据 直接将缓存区中的数据拿出来赋值给变量
运算符几本概念和分类
什么是运算符呢?
简单来说,就是给程序里面的数据做运算的符号。
运算符的分类
按照功能可划分:
1)算术运算符
2)关系运算符
3)逻辑运算符
4)换位运算符
按照参与运算的个数可分为:
1)单目运算:只有一个操作数 如:i++ -a;
2)双目运算:有两个操作数 如:a + b;
3)三目运算:C语言中唯一的一个,也叫问号表达式 a > b ? 1 : 0
算术运算符及赋值运算符
1)算术运算符
例:
5 + 3 10-6 3*4 8/2 10%3
这样的用算术运算符结合起来的式子,我们就称之为算术表达式。
2)赋值运算符赋值运算符记为“=”,由“=”连接的式子称为赋值表达式。
其一般形式为: 变量 = 表达式其作用为:将“=”右边的值或者计算后的结果赋值给左边的变量
例如: inta=5+3;
我们将算术表达式5 + 3的结果存储在变量a中了。
复合运算符
思考:
学生a考试成绩不理想,然后找老师聊了一下后,老师决定给她的分加10分。那么在程序里怎么实现呢?
//学生a的分数为55分int a = 55;
//让学生a的分数在原来的基础上加10分a = a + 10;
另一种方式:
//学生a的分数为55分int a= 55;
//让学生a的分数在原来的基础上加10分a+=10; //这句话等价于a=a+10;
复合运算符作用就是:让变量的值在自身的基础之上进行运算。
除了 “+=”,还有
-=
*=
/=
%=
自增和自减
提问:你今年几岁了?
年龄每年都长1岁,那么,程序里怎么写?
int age = 18;
age = age + 1; 或者 age += 1但是,更精简的方式诞生了!!
a++
++a
可是现在,新问题来了:
a++和++a有区别吗?
前缀++代表让变量先+1,再作为表达式的值
后缀++代表让变量原来的值作为表达式的值,再+1
逗号运算式和表达式
简介:“,”就叫逗号运算符,把多个表达式用“,”连接起来组成一个表达式,叫逗号表达式。逗号表达式必须用一个括号括起来
int a = 10;int b = 20;
a++;b++;
int c = a + b;等同于
int a = 10;int b = 20;
int c = (a++,b++,a+b);
关系运算符
关系运算符大全:
序号 |
运算符 |
结合性 | |
1 |
> |
大于 如:a>b a>3 5>4 1>2 |
左结合 |
2 |
< |
小于 如:a<c d<3 2<5 |
左结合 |
3 |
>= |
大于等于 如: a>=1 d>=c |
左结合 |
4 |
<= |
小于等于 如: a<=0 i<=19 |
左结合 |
5 |
== |
等于 i==3 a==b |
左结合 |
6 |
!= |
不等于 a!=b c!=5 |
左结合 |
如果我们说张三比李四帅也就是说张三的颜值大于李四
那么,如果以后我们要询问 张三 比 李四帅吗?
是否就可得到一个条件表达式 结果 = 张三的颜值 > 李四的颜值
也就是说:
条件表达式是用来描述的1个条件的.
条件表达式的结果:条件表达式只有两种结果,一种是条件成立返回的是1(也叫条件为真),一
种是条件不成立返回的是0(也叫条件为假),不可能出现第三种。
逻辑运算符
C语言中提供了三种逻辑运算符:
&&(与运算)
|| (或运算)
! (非运算)
逻辑运算的值
逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:
1) 与运算(&&)
参与运算的两个量都为真时,结果才为真,否则为假。例如:
5>0 && 4>2
由于5>0为真,4>2也为真,相与的结果也为真。
口诀:一假则假
2) 或运算(||)
参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:
5>0||5>8
由于5>0为真,相或的结果也就为真。
口诀:一真为真
3) 非运算(!)
参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:
!(5>0) 的结果为假。
口诀:真变假,假变真
注意:
1)虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反过来在判断一个量是为“真”还是为“假”时,
以“0”代表“假”,以非“0”的数值作为“真”。 例如:
由于5和3均为非“0”因此5&&3的值为“真”,即为1。
又如:5||0的值为“真”,即为1。
2)短路
与短路:&& 只要第一个条件表达为假那么后面的条件表达就不参与运算了
或短路:|| 只要第一个条件表达式为真那么后面的条件表达式就不参与运算了
逻辑表达式
逻辑表达式的一般形式为:
表达式 逻辑运算符 表达式
其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:
(a&&b)&&c
根据逻辑运算符的左结合性,上式也可写为:
a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。
sizeof的介绍和使用
1、sizeof的概念
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。sizeof操作符以字节形式给 出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。
2、sizeof的使用方法
1)用于数据类型
sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。
2)用于常量
int size = sizeof(1);
size = sizeof(1.1);
size = sizeof(1.1f);
sise = sizeof('a');
3)用于变量
sizeof使用形式:sizeof(var_name)或sizeof var_name 变量名可以不用括号括住。
如sizeof(var_name),sizeof var_name等都是正确形式。带括号的 用法更普遍,大多数程序员采用这种形式。
char a;
size = sizeof(a);
size = sizeof a;