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;
}