欢迎来到机器学习的世界
博客主页:卿云阁欢迎关注点赞收藏⭐️留言
本文由卿云阁原创!
本阶段属于练气阶段,希望各位仙友顺利完成突破
首发时间:2021年10月10日
✉️希望可以和大家一起完成进阶之路!
作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
数据类型
整形
字符类型
布尔类型
浮点类型
运算符和表达式
数据类型
数据在C语言中总体可以分为三类:算数类型、void型以及派生类型,具体细分情况如图所示。
整形
整数类型中的整型,使用最多的是int型,以这种类型为基础,通过long、short、unsigned、signed关键字的修饰形成不同的整型。
int age=19;
字符类型
一个char型的数据存储在内存中并不是存字符本身,存储的是该字符的ASCII码。
char ch='A'; char c=65;
布尔类型
C99标准以后增加了布尔类型,并且提供了_Bool这个关键字来声明这种类型的数据,_Bool型数据只有true和false这两个值,C语言使用数值1表示true,0表示false,所以_Bool型属于无符号整型。对于一个_Bool型的变量,不管给它赋什么标量值,如34、1、0、-2.0,它接收值的原则是非0值即认定是1,0就是0。输出_Bool型值时用格式控制符%d。
#include
int main(void) { _Bool x,y,z; //定义三个_Bool型变量 x=50; //可以赋一个整数,但x的值是1。 y=0; //赋值为0,所以y的值为0。 z=-1; //可以赋一个负数,但z的值仍然为1。 printf("x=%d,y=%d,z=%d \n",x,y,z); //输出x,y,z。 } 浮点类型
实数浮点类型
double a=1.1;
复数浮点类型(平时用的很少,这里不做介绍)
运算符和表达式
C语言提供的运算符有以下13类。
(1) 算术运算符 (+、-、*、/、%、++、--)
(2) 关系运算符 (>、<、==、>=、<=、!=)
(3) 逻辑运算符 (!、&&、||)
(4) 位运算符 (<<、>>、~、|、、&)
(5) 赋值运算符 (=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>= )
(6) 条件运算符 (?:)
(7) 逗号运算符 (,)
(8) 指针运算符 (*、&)(9) 求字节数运算符 (sizeof)
#include
int main(void) { int a=25; int b=8; printf("%d\n",a/b); printf("%f",a/(b*1.0)); } (10) 强制类型转换运算符 ( (类型) )
(11) 分量运算符 (. 、->)
(12) 下标运算符 ([ ])
(13) 其他 (如函数调用运算符())
C语言中运算符参与运算也有优先级别,所标优先级数值越小的级别越高,越优先计算。
表达式是由一系列运算符(Operators)和操作数(Operands)组成的式子,它计算一个值、指定对象或函数、产生副作用。
算术运算符
例:计算25/8的结果,结果使用小数表示
自增、自减运算符
C语言提供了自增(++)、自减(--)两个运算符,可用于标量类型数据自身加1或减1运算,不过它们只能作用于可修改左值。
自增、自减运算符都分为两种,如果放在左值的左边,称前缀运算符,是先对左值加、减1,再利用左值,相当于先执行“操作数=操作数+1”再加1。
#include
int main(void) { int a=3; int b,c; b=a++; printf("b=%d\n",b); printf("a=%d\n",a); c=++a; printf("b=%d\n",c); printf("a=%d\n",a); }
赋值运算符与赋值表达式
复合赋值运算符。C语言中的复合赋值运算符有
+=、-=、*=、 /=、%=、&=、^=、|=、<<=、>>=。
它们也构成赋值表达式,例如,x*=y+8、x/=3、x %= y+3、x-=y+2。
复合赋值运算符把它左边的值与右边表达式,用=左边给定运算符进行运算,得到的结果赋给左边的值。上面实例中的四个表达式分别相当于
x=x*(y+8)、x= x /3、x=x%(y+3)、x=x-(y+2)。
#include
int main(void) { int a=3; int b; b*=a+8; printf("b=%d\n",b); } 逗号运算符和逗号表达式
用逗号运算符把两个及以上的子表达式连接起来的表达式,称逗号表达式。格式如下。
子表达式1, 子表达式2, ... , 子表达式n
例如,3+5,6+8和a=4+x, x+5%(4+4),i++是两个逗号表达式。逗号表达式从表达式1开始,分别计算每一个子表达式的值,一直算到子表达式n,整个逗号表达式的值就是子表达式n的值。
#include
int main(void) { int a=3; int b; b=(a+1,a+2,a+3); printf("b=%d",b); }
关系运算符及关系表达式
C语言中提供的关系运算符有>、<、==、>=、<=、!=,分别表示大于、小于、等于、大于等于、小于等于和不等于。由关系运算符和表达式构成的表达式,称为关系表达式。格式如下。
表达式1 关系运算符 表达式2
关系表达式的值由表达式1和表达式2是否满足关系运算符定义的意义来确定,如果满足,整个关系表达式的值是true,否则为false,所以关系表达式的最终结果只有两种值。前面提到C中并没有具体定义true和false这两个值,它们分别是用1和0表示,从这个意义上讲,关系表达式的最终值只有1和0两种。
例如,a的值是3,b的值是4,则关系表达式a>b的值为0;a
#include
int main(void) { int a=3; int b=4; printf("%d",b>a); }
逻辑运算符与逻辑表达式
逻辑运算符有三种:&&、||、!。由这三个运算符构成的表达式称为逻辑表达式,参与计算的子表达式结果是标量类型。逻辑表达式与关系表达式一样,其值也只有true和false两种,也用1和0表示,整个逻辑表达式的结果值是int型。
条件运算符和条件表达式
条件运算符为 ?:,这是一个三目运算符,它的一般格式为:
表达式1?表达式2:表达式3
由条件运算符和操作数构成的表达式,称为条件表达式。整个表达式值的计算规则是:先计算表达式1的值,如果是非0,计算表达式2的值,并把这个值作为整个条件表达式的值,结束。如果表达式1的值为0,则计算表达式3的值,并把这个值作为整个表达式的值,结束。