define 是一个预处理指令
1.define 定义符号
define MAX 1000
2.define 定义宏
//define 定义宏
#define ADD(X, Y) ((X) + (Y))
int main()
{
printf("%d\n", 5 * ADD(2, 3));
}
指针
内存
32位--32根地址线--物理线--1/0 2^32 bit = 512MB
一个内存单元是一个字节,每个内存单元的编号就是内存地址
int main()
{
int a = 3;
printf("%p\n", &a); //%p 用来打印地址的
int* pa = &a; //pa用来存放地址的,在C语言中叫指针变量
//*说明pa是指针变量
//int 说明pa执行的对象是int类型
char c = 'w';
char* pc = &c;
printf("%p\n", pc);
return 0;
}
int main()
{
int a = 10;
int* pa = &a;
*pa = 20; //*解引用 *pa通过pa的地址找到a
printf("%d\n", a);
}
//指针变量的大小
int main()
{
printf("%d\n", sizeof(int*)); //4
printf("%d\n", sizeof(char*)); //4
printf("%d\n", sizeof(short*)); //4
printf("%d\n", sizeof(long*)); //4
printf("%d\n", sizeof(double*)); //4
}
结构体
结构体使C语言有能力描述复杂对象
//创建学生
struct Stu
{
char name[20];
int age;
double score;
};
int main()
{
struct Stu s = { "张三", 18, 98.7 }; //结构体创建和初始化
printf("1:%s %d %lf\n", s.name, s.age, s.score);
struct Stu* ps = &s;
printf("2:%s %d %lf\n", (*ps).name, (*ps).age, (*ps).score);
printf("3:%s %d %lf\n", ps->name, ps->age, ps->score);
}
选择、分支、循环
分支
if语句
//分支
int main()
{
int age = 20;
if (age < 18)
printf("未成年\n");
else
{
printf("成年\n");
printf("可以谈恋爱\n");
}
}
else 后面无大括号,只能控制一行语句。else跟最近的if匹配,可以用{}区分开。
switch语句
//switch语句
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("周一");
break;
case 2:
printf("周二");
break;
case 3:
printf("周三");
break;
case 4:
printf("周四");
break;
case 5:
printf("周五");
break;
case 6:
printf("周六");
break;
case 7:
printf("周末");
break;
}
}
case 整型常量表达式:
语句;
default可以出现在任意位置
break跳出自己所在的语句
网友评论