前置++和后置++:ide
int a = 10; int b = a++; printf("a = %d b = %d\n", a, b);
++运算符分为后置++和前置++,两者所区别之处并不在与自增的变量,而在于自增变量所要赋值的对象。
以上面的代码举例,当运行结束以后所获得的的a和b的结果做比较
运行结果
a = 11 b = 10
很明显b的值是在a自增前所赋值上的,因此后置++能够总结出一句话:先使用,在自增。
前置++则和后置相反,所奉行的是“先自增,在使用”。函数
int a = 10; int b = ++a; printf("a = %d b = %d\n", a, b);
因此,以上的这个代码所获得的运行结果即是 a = 11 ,b = 11;code
条件操做符
条件操做符
表达式1 ? 表达式2 : 表达式3;
若是表达式1为真,则表达式2就是整个代;若表达式为假,则表达式3就是这行代码的所有对象
int main() { int a, b; scanf("%d%d",&a,&b); int max = 0; max = (a > b ? a : b); printf("%d\n",max); }
若a>b为真,则max = a;若为假,max = b;
struct - 结构体关键字
typedef - 类型定义 - 类型重定义 - 能够从新定义类型 ,例如 typeef unsigned int u_int 意思为将unsigned int 重定义为 u_int
即便得 unsigned int num = 20; 与 u_int num = 20;等价生命周期
static - 修饰局部变量,当static局部变量的时候,局部变量的生命周期变长了;修饰全局变量时,改变的时全局变量做用域,让静态的全局变量只能在本身所在的源文件内部使用;
static修饰的函数改变了函数的连接属性,则其余源文件就不能访问这个函数,使得这个函数的外部连接属性-->内部连接属性
struct - 结构体关键字
typedef - 类型定义 - 类型重定义 - 能够从新定义类型 ,例如 typeef unsigned int u_int 意思为将unsigned int 重定义为 u_int
即便得 unsigned int num = 20; 与 u_int num = 20;等价作用域
static - 修饰局部变量,当static局部变量的时候,局部变量的生命周期变长了;修饰全局变量时,改变的时全局变量做用域,让静态的全局变量只能在本身所在的源文件内部使用;
static修饰的函数改变了函数的连接属性,则其余源文件就不能访问这个函数,使得这个函数的外部连接属性-->内部连接属性
struct - 结构体关键字
typedef - 类型定义 - 类型重定义 - 能够从新定义类型 ,例如 typeef unsigned int u_int 意思为将unsigned int 重定义为 u_int
即便得 unsigned int num = 20; 与 u_int num = 20;等价it
static关键字
当static修饰局部变量时,局部变量的生命周期变长了;修饰全局变量时,改变的时全局变量做用域,让静态的全局变量只能在本身所在的源文件内部使用;
static修饰的函数改变了函数的连接属性,则其余源文件就不能访问这个函数,使得这个函数的外部连接属性-->内部连接属性class