携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情
条件操作符
exp1 ? exp2 : exp3
条件操作符通常由3个表达式构成!又叫(三目操作符)!
如果exp1表达式结果为真,执行exp2,否者执行exp3
可以看到与我们的判断语句if类似!
#include<stdio.h>
int main()
{
int a=5,b=3,max=0;
//if判断语句求最大值
if(a>b)
{
max=a;
}
else
{
max=b;
}
//条件表达式
a>b?max=a:max=b;
return 0;
}
可以看到条件表达式的优点,可以大大的简化代码!
逗号表达式
exp1,exp2,exp3...expN
表达式之间用,分隔开,这就是逗号表达式。
表达式特点
#include<stdio.h>
int main()
{
int a=2,b=3,c=5;
int i=(a++,b++,c);
printf("a=%d b=%d c=%d i=%d",a,b,c,i);
return 0;
}
可以看到表达式
i=(a++,b++,c);结果i=5也就是最后一个表达式c的值。
逗号表达式运算特点:
表达式从左往右依次计算,最后一个表达式的值,便是整个逗号表达式结果的值!
其他操作符
[]下标引用操作符()函数调用操作符.->结构成员访问操作符
[]下标引用操作符
操作数:一个数组名+一个索引值
int arr[10];//创建数组
arr[9] = 10;//实用下标引用操作符。
// [ ]的两个操作数是arr和9。
既然是两个操作数,那么两个操作数可以交换位置吗?
可以看到
arr[9]等价9[arr]
但是我们并不介意用9[arr]
()函数调用操作符
( ) 函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
#include <stdio.h>
void test1()
{
printf("hehe\n");
}
void test2(const char *str)
{
printf("%s\n", str);
}
int main()
{
test1();//实用()作为函数调用操作符。
test2("hello bit.");//实用()作为函数调用操作符。
return 0;
}
.:结构体.成员名->:结构体指针->成员名
#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;
}