7. 关系操作符
> >= < <= != 用于测试“不相等” == 用于测试“相等”
小心不要吧‘=’和‘==’搞混。
8. 逻辑操作符
逻辑操作符有哪些:
&& 逻辑与 || 逻辑或 区分逻辑与和按位与 区分逻辑或和按位或 1&2----->0 1&&2---->1 1|2----->3 1||2---->1
下面是一道易错的题目:
#include <stdio.h> int main() { int i = 0,a=0,b=2,c =3,d=4; i = a++ && ++b && d++; //i = a++||++b||d++; printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d); return 0; } //程序输出的结果是什么?
答案是1 2 3 4,而不是1 3 3 5哦。
这是因为a++的++为后置,这样一来a的值为零,即为假,a++之后的代码不会执行。
9. 条件操作符
exp1 ? exp2 : exp3
1. if (a > 5) b = 3; else b = -3; 转换成条件表达式,是什么样? 2.使用条件表达式实现找两个数中较大值 //a>5? b=3:b=-3
10. 逗号表达式
exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
//代码1 int a = 1; int b = 2; int c = (a>b, a=b+10, a, b=a+1);//逗号表达式 c是多少? //代码2 if (a =b + 1, c=a / 2, d > 0) //代码3 a = get_val(); count_val(a); while (a > 0) { a = get_val(); count_val(a); } 如果使用逗号表达式,改写: while (a = get_val(), count_val(a), a>0) { }
11. 下标引用、函数调用和结构成员
1. [ ] 下标引用操作符 操作数:一个数组名 + 一个索引值。
2. ( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
#include <stdio.h> void test1() { printf("hehe\n"); } void test2(const char *str) { printf("%s\n", str); } int main() { test1(); //实用()作为函数调用操作符。 test2("hello world.");//实用()作为函数调用操作符。 return 0; }
3. 访问一个结构的成员 . 结构体.成员名 -> 结构体指针->成员名 。
#include <stdio.h> struct Stu { char name[10]; int age; char sex[5]; double score; }; void set_age1(struct Stu stu) { stu.age = 18; } void set_age2(struct Stu* pStu) { pStu->age = 18;//结构成员访问 } int main() { struct Stu stu; struct Stu* pStu = &stu;//结构成员访问 stu.age = 20;//结构成员访问 set_age1(stu); pStu->age = 20;//结构成员访问 set_age2(pStu); return 0; }
希望能为大家带来帮助!
最后,如果您觉得我的文章写的不错。
请给小陈:
点一个小小的赞!
我一定会带来更好的文章的!