exp1?exp2:exp3 ——条件操作符

表示当exp1为真时,此程序结果为exp2,反之为exp3

#include<stdio.h>
int main()
{
	int a = 9;
	int b = 3;
	int Max = 0;
	Max = (a>b?a:b);
	printf("Max=%d\n",Max);
	return 0;
}

此程序中a>b,则Max=a,所以最终运行结果为Max=9

exp1,exp2,exp3,...expn ——逗号表达式

均由逗号隔开的表达式

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=2 a=3 a=4 a=5 a=6

若此处没有使用static

此程序运行结果为a=2 a=2 a=2 a=2 a=2

#define 定义常量和宏

例如:#define Max 100 //定义标识符常量

#include<stdio.h>
#define MAX(X,Y) (X>Y?X:Y)
int main()
{
	int a = 10;
	int b = 20;
	int max = MAX(a,b);
	max = MAX(a,b);
	printf("max = %d\n",max);
	return 0;
}

此程序运行结果为max=20

指针

是个变量用来存放地址

#include<stdio.h>
int main()
{
	int a = 10;
	int* p = &a;
	printf("%p\n",&a);
	printf("%p\n",p);
	return 0;
}

int*——指针变量,存放变量的地址

此程序运用于求a的地址,最终输出的两个结果是一致的

*p ——表示此指针指向的内存地址中存放的内容

例1

#include<stdio.h>
int main()
{
	int a = 10;
	int* p = &a;
        *p=20;
printf(“a = %d\n”,a)
	return 0;
}

此程序运行结果为 a=20,此处*p就可以看为a

例2

#include<stdio.h>
int main()
{
	char ch = 'a';
	char* p = &ch;
	*p = 'A';
	printf(" ch = %c\n",ch);
	return 0;
}

此程序运行结果为 ch=A

指针的大小在32位平台是4个字节,在64位平台是8个字节