一 操作符
1 关系操作符
> < >= <= != ==
编写代码时注意=与==的区别
=是赋值,==才是判断是否相等
判断字符串是否相同时应使用strcmp()函数,不能使用关系操作符
2 逻辑操作符
&& 逻辑与:只要有一个表达式为假即为假,不在执行后面的表达式
#include<stdio.h>
int main()
{
int age=0;
scanf("%d",&age);//输入年龄
if(age>0&&age<18)
{
printf("未成年\n");
}
return 0;
}
|| 逻辑或:只要有一个表达式为真即为真,不在执行后面的表达式
#include<stdio.h>
int main()
{
int month=0;
scanf("%d",&month);
if(month<0||month>12)
{
printf("输入错误\n");
}
return 0;
}
3 条件操作符(三目操作符)
表达式1?表达式2:表达式3
#include<stdio.h>
int main()
{
int a=10;
int b=20;
int max=0;
if(a>b)
max=a;
else
max=b;
printf("%d\n",max);
return 0;
}
#include<stdio.h>
int main()
{
int a=10;
int b=20;
int max=0;
max=(a>b?a:b);
printf("%d\n",max);
return 0;
}
这两段代码作用相同
4 逗号表达式
从左向右依次执行整个表达式,结果是最后一个表达式的结果
#include<stdio.h>
int main()
{
int a=3;
int b=5;
int c=6;
int d=(a+=2,b=a+c,c=a+2*b);
printf("%d\n",d);
return 0;
}
5 下标引用 []
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arr[7]);
return 0;
}
6 函数调用操作符 ()
#include<stdio.h>
void test()
{
printf("hehe\n");
}
int main()
{
test();//函数调用操作符
return 0;
}
7 访问结构体操作符
结构体变量.结构体成员
#include<stdio.h>
struct Stu
{
char name[20];
int age;
double score;
};
int main()
{
struct Stu s={"zhangsan",20,85.5};
printf("%s %d %lf\n",s.name,s.age,s.score);//.是访问结构体操作符
return 0;
}
用结构体指针访问:
#include<stdio.h>
struct Stu
{
char name[20];
int age;
double score;
};
int main()
{
struct Stu s={"zhangsan",20,85.5};
struct Stu* ps=&s;
printf("%s %d %lf\n",ps->name,ps->age,ps->score);//使用指针访问结构体时使用->
return 0;
}