1、extern,逗号表达式
#include <stdio.h>
#include <stdlib.h>
/******************************************
* Descir : 测试一个逗号表达式
*****************************************/
int main(int argc, char *argv[]) {
extern int Val ;//extern声明,使用全局变量
int test = 0;
test = Val,2; //逗号表达式,优先级比=还要低
printf("Val = %d",test);
return 0;
}
int Val = 1; //通常将全局变量放在文件开始处便于函数使用,放在函数后,需要使用extern
----------------------
Val=1
2、表达式计算顺序
C语言没有指定同一运算符的几个运算分量的计算次序(&&、||、 ?:与,除外)。例如在诸如
x = f(x)+g(x)
一类语句中,f()可以在g()之前计算,也可以在g()之后计算。因此,如果函数f或g中改变了另一个函数中所要使用的变量的值,那么x的结果只可能依赖于这两个函数的计算次序。
3、条件表达式
如果条件表达式中的两个可选项具有不同的类型,那么遵循1中的转换规则,例如:
(n>0)?f:n
如果f为float类型,n为int类型,那么上述表达式的类型为float,无论n是不是正数。