运算符
1.条件运算符
条件运算符(Conditional Operator) 是C语言中唯一一个三目运算符(Ternary Operator) ,带 三个操作数,它的形式是表达式1 ? 表达式2 : 表达式3,这个运算符所组成的整个表达式的值等于 表达式2或表达式3的值,取决于表达式1 的值是否为真
定义一个函数求两个参数中较大的一个
int max(int a, int b)
{
return (a > b) ? a : b;
}
2.sizeof运算符与typedef类型声明
比如用sizeof运算符求一个数组的长度:
int a[12];
printf("%d\n", sizeof a/sizeof a[0]);
在上面这个例子中,由于sizeof 表达式中的表达式不需要求值,所以不需要到运行时才计算,事
实上,在编译时就知道sizeof a的值是48, sizeof a[0] 的值是4,所以在编译时就已经
把sizeof a/sizeof a[0] 替换成常量12了,这是一个常量表达式。
typedef这个关键字用于给一个类型起个新的名字,上面的声明可以这么看:去掉typedef就成了 一个变量声明unsigned long size_t; , size_t是一个变量名,类型是unsigned long,那么加 上typedef之后, size_t就是一个类型名,就代表unsigned long类型。再举个例子:
typedef char array_t[10];
array_t a;
就相当于定义char a[10]; 。类型名也遵循标识符的命名规则,并且通常加个_t后缀,表
示Type。