6 选择语句
int main() 
{
	int coding = 0;
	printf("请输入0或1:\n");
	scanf("%d",&coding);
	if (coding == 1)
		printf("true");
	else
		printf("false");
	return 0;
}
 
7 循环语句
- while语句
 - for语句
 - do-while语句
 
int main() {
	int iq = 0;
	printf("请输入你的iq:\n");
	while (scanf("%d\n", &iq)!=EOF) 
	// or while (scanf("%d\n", &iq) == 1)
	{
		if (iq > 140)
			printf("Genius!");
		return 0;
	}
}
 
如果scanf中输入两个数,则改为while(scanf("%d\n", &iq) == 2)
8 函数
int Max(int a, int b) {
	if (a >= b)
		return a;
	else (a < b);
		return b;
}
int main() {
	int a = 0;
	int b = 0;
	int max = 0;
	printf("请输入两个整数:");
	scanf("%d %d", &a, &b);
	max = Max(a, b);
	printf("这两个数的较大数是:%d", max);
	return 0;
}
 
9 数组
- 9.1 数组定义
 
//数组定义
int arr1[10] = {1,2,3,4,5,6,7,8,9};
char ch[] = {'a','b','c','d'};
 
-  
数组下标
下标计数从零开始,可以通过下标被访问,若有十个元素,下表数0-9 -  
数组的使用
 
//数组定义
int arr1[10] = {1,2,3,4,5,6,7,8,9};
char ch[] = {'a','b','c','d'};
int main() {
	char arr2[6] = {'0'};
	int i = 0;
	for (i=0;i<10;i++) 
	{
	printf("%c\n", ch[i]);
	}
	return 0;
}
 
10 操作符
·基本操作符: + - * / %
 ·移位操作符:>> <<
 ·位操作符:& | ^
 ·赋值操作符:= += -=
 ·单目操作符(只有一个操作数):! - + & sizeof ~ – ++ * (类型):强制类型转换 eg.(int)直接舍弃小数点后的数
 ·关系操作符: > >= < <= != ==
 ·逻辑操作符:&& ||
 ·条件操作符:exp1 ?exp2 : exp3
 若exp1为真,则取exp2;若exp1为假,则取exp3
 ·逗号表达式:exp1,exp2, exp3,…,expN
 从左到右依次计算,整个表达式的结果是最后一个表达式的结果
11 常见关键字
- 关键字typedef:类型重定义
 
typedef unsigned int uint_32;
int main() {
	unsigned int num1 = 0;
	uint_32 num2 = 0;
	return 0;
}
 
num1和num2类型一致
-  
寄存器关键字 register
一般变量存储在内存中register int num = 0则建议将num的值放在寄存器里,但最终是由编译器决定。因此不能取地址(内存才有地址) -  
关键字static
static用来修饰变量和函数
可以修饰局部变量,全局变量,函数 -  
修饰局部变量时,改变了局部变量的存储类型;本来整个局部变量是存储在栈区的,被static修饰后存储在静态区,因此即便出了作用域该变量也不销毁,生命周期与程序的生命周期一样长。
 -  
修饰全局变量时,会改变全局变量的外部链接属性,使该变量只能在本源文件中使用,不能在其他源文件中使用。
 -  
修饰函数与修饰全局变量的作用相似。
 
12 #define定义常量和宏
宏定义时命名一般大写,以示区分
//定义标识符常量
#define MAX =100
//定义宏,(x)+(y)有括号的原因是用的时候可能会有表达式
#define ADD(x,y) ((x)+(y))
 
13 指针
1、内存会被划分小的内存单元,一个内存单元的大小是1个字节
 2、每个内存单元都有编号,这个编号也被称为:地址/指针
 3、地址/指针就可以存放在一个变量中,即指针变量
 4、通过指针变量中存储的地址,就能找到指针指向的空间
int main() {
	int num = 10;
	#
	printf("%p\n", &num);
	int* p;//p是一个指针型变量,对象是int类型的
	p = #
	*p = 20;//num的值改为20
	printf("%d\n", num);
	return 0;
}
 
地址取第一个字节的地址(最小的地址)
 指针的大小:4字节(32位)或8字节(64位)
14 结构体
struct stu
{
	char name[20];
	int age;
	char sex[5];
};
int main() {
	//初识化结构体信息
	struct stu s = { "张三", 23, "男" };
	//两种访问方式 . or ->
	//printf("name = %s age = %d sex = %s\n", s.name, s.age, s.sex);
	//写入时数组不用取地址符,本身就是地址
	//scanf输入完后不要换行符!!!
	scanf("%s %d %s", s.name, &(s.age), s.sex); 
	struct stu* ps = &s;
	printf("name = %s age = %d sex = %s\n", ps->name, ps->age, ps->sex);
	return 0;
}









