CSDN话题挑战赛第2期 参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
目录
一.操作符分类
二.单目操作符
&、* 操作符
?编辑sizeof操作符
~表示按(2进制)位取反
(类型)强制类型转换
三.关系操作符
四.逻辑操作符
练习1
练习2
?五.条件操作符
六. 逗号表达式
七.下表引用、函数调用和结构成员
1.[ ]下标引用操作符
2.()函数调用操作符接受一个或者多个操作数∶第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
?3.访问一个结构的成员
一.操作符分类
- 算术操作符
- 移位操作符
- 位操作符
- 赋值操作符
- 单目操作符
- 关系操作符
- 逻辑操作符
- 条件操作符
- 逗号表达式
- 下表引用、函数调用和结构成员
二.单目操作符
什么是单目操作符,用图解释一下:
&、* 操作符
sizeof操作符
?
~表示按(2进制)位取反
如有二进制数为:1010 那么按位取反就是:1变成0,0变成1,故1010等于0101
?
(类型)强制类型转换
?
三.关系操作符
?这些关系运算符比较简单,没什么可讲的,但是我们要注意一些运算符使用时候的陷阱。 警告:在编程的过程中==和=不小心写错,导致的错误。
四.逻辑操作符
&&? ? ? ? 逻辑与 ||? ? ? ? ? ?逻辑或
区分逻辑与和按位与区分逻辑或和按位或
因为1&&2为真所以为1。
练习1
#include<stdio.h>
int main()
{
int i=0,a=0,b=2,c=3,d=4;
i=a++ && ++b && d++;
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
return 0;
}
?运行结果是:
?我们来分析一下结果为什么是这个:
?a++是后置++,所以这里是先a=0;为假,后面的就不会运行,所以b,c,d不变。
?
练习2
#include<stdio.h>
int main()
{
int i=0,a=1,b=2,c=3,d=4;
i=a++ || ++b || d++;
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
return 0;
}
?运行结果是:
??我们来分析一下结果为什么是这个:
?
?五.条件操作符
?这里表示:如果表达式1结果为真,那么表达式exp2要执行,表达式2是整个表达式的结果 如果表达式为假,表达式3要被执行,表达式3是整个表达式的结果,比如:
?
六. 逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
?比如: ?
#include<stdio.h>
int main()
{
int a=1;
int b=2;
int c=(a>b,a=b+10,a,b=a+1);
printf("%d",c);
return 0;
}
?运行结果是:
我们来分析一下:
再比如:
七.下表引用、函数调用和结构成员
1.[ ]下标引用操作符
操作数:一个数组名+一个索引值
2.()函数调用操作符接受一个或者多个操作数∶第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
?3.访问一个结构的成员
? ? ? ? . 结构体.成员名 ? ? ? ? -> 结构体指针->成员名
?
?
|