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个字节
,