知识
- 前置++与后置++
- 逻辑与和逻辑或
- 指针的简单理解
- static修饰局部变量
- 三目操作符
理解
- 前置++与后置++
前置++:
#include<stdio.h>
int main()
{
int a=1;
int b=++a;
printf("a=%d b=%d\n",a,b);
return 0;
}
前置++是a先自增+1,在赋值给b,结果如下图
后置++:
#include<stdio.h>
int main()
{
int a=1;
int b=a++;
printf("a=%d b=%d\n",a,b);
return 0;
}
后置++是先赋值给b,a再自增,结果如下图
- 逻辑与和逻辑或(在计算机中,真为非0数,假为0)
逻辑与(&&):
#include<stdio.h>
int main()
{
int a=9;
int b=0;
int c=a&&b;
printf("c=%d",c);
return 0;
}
“逻辑与”可以看成高数中的“且”,两边都为真(非0数)结果才为真,全真为真,一假全假,结果如下图,为假。
逻辑或(||):
#include<stdio.h>
int main()
{
int a=9;
int b=0;
int c=a||b;
printf("c=%d",c);
return 0;
}
同理,“逻辑或”可以看成高数中的“或”,两边只要一个为真(非0数)结果为真,一真为真,全假为假,结果如下图,为真。
- 指针
#include<stdio.h>
int main()
{
int a=4;
int* pc=&a;
printf("%p\n",pc);//%p是打印地址
return 0;
}
什么是指针?这么解释:“int a=4”是一个以a为名字的房子,房子里现在有“4”的货物,“&a”是我现在要取货,要找到这个房子的地址,“int* pc”是我找到了房子,要把地址记下来,方便下次取货。把a变量的地址记录下来,就是指针。a的地址如下图所示:
- static修饰局部变量
#include<stdio.h>
void test()
{
static int a=1;
a++;
printf("a=%d\n",a);
}
int main()
{
int i=0;
while(i<5)
{
test();
i++;
}
return 0;
}
static修饰局部变量,是让局部变量的生命周期变长,让变量a可以进入到main函数中循环,不会被销毁。下图为打印结果:
如果不使用static,变量a会在程序走出test函数时被销毁不会参与循环,结果如下图:
- 三目操作符(exp1?exp2:exp3)
拿两个数比较大小举例:
#include<stdio.h>
int main()
{
int a=1;
int b=2;
int c=(a>b?a:b);
printf("c=%d",c);
return 0;
}
三目操作符(exp1?exp2:exp3)是一个整体,exp代表的是式子,exp1?exp2:exp3的意思是exp1是否成立,如果成立结果为exp2,不成立结果为exp2.。结果如下图:
总结
- 前置++是先自增+1,在赋值使用,后置++是先赋值使用,再自增。
- -逻辑与(&&)是 一真为真,全假为假,逻辑或(||)是,一真为真,全假为假。
- 指针是要变量的地址存储下来。
- static修饰局部变量,是让局部变量的生命周期变长,不被销毁。
- 三目操作符(exp1?exp2:exp3)是用来判断条件的。