1.关系操作符(在if语句中可用)
> < >= <== != ==
2.逻辑操作符
&&按位与 ||按位或
#include <stdio.h>
int main(){
int a =5;
int b = 3;
int c = a&&b;
printf("c=%d", c);
return 0;
}//结果为c=1
C语言中0为假,非零为真,所以a=5为真,b=3为真,故c=a&&b为真
&&有一个假就是假。||有一个真就是真
3.条件操作符(exp1?exp2:exp3)
#include <stdio.h>
int main(){
int a =10;
int b = 20;
int max = 0;
max = (a > b ? a : b);
if (a > b)
max = a;
else
max = b;
printf("max=%d",max );
return 0;
}//结果为20
exp1如果成立,执行exp2,如果不成立,执行exp3
4.Void(无类型,没有返回值)
void关键字是函数返回类型,不需要return语句
#include <stdio.h>
void test()
{
int a = 1;
a++;
printf("%d", a);
}
int main(){
int i = 0;
while (i < 5){
test();
i++;
}
return 0;
}//结果是22222
先进来直接走int main遇见test()走void,a是局部变量,结果一直为2。当i=5时才可以跳出循环,所以要走五次void,故答案是22222。
改成static int a=1;结果为23456。因为static将a转变为静态局部变量,所以第二次进入void时a的初始值是2。同理,是的结果为23456
static(修饰局部变量,使得局部变量生命周期延长,出了作用域也不会销毁
修饰全局变量,会改变作用域。eg:两个.c代码中,当我申明外部变量(extern),若外部的前方有static,使得该变量只能在自己的源文件内部使用,无法用于外部申明。)
5.宏定义(用define定义)
#define MAX(x,y) (x>y?x:y)
#include <stdio.h>
int main(){
int a = 0;
int b = 9;
int max= MAX(a,b);
printf("max=%d", max);
return 0;
}
6.指针
指针最小单位是byte
#include <stdio.h>
int main(){
int a;
int* p = &a;
*p = 20;
printf("%d\n",a);
return 0;
}结果为20
#include <stdio.h>
int main(){
int a = 10;
int* p= &a;
printf("%d\n", *p);
return 0;
}//结果为10
#include <stdio.h>
int main(){
char ch='w';
char* p = &ch;
*p = 'a';
printf("%c\n", ch);
return 0;
}//结果为a