static 修饰全局变量,extern 无法引用
define 可以定义常量,也可以定义宏;
// define 定义宏
#define add(x,y) ((x)+(y))
int main ()
{
printf("%d\n",4*add(3,2));
system("pause");
return 0;
}
指针:
内存是电脑上特别重要的储存器,计算机所有程序的运行都在内存中运行的。
为了有效的使用内存,就把内存划分为一个个小的内存单元,每个内存单元的大小都是1个字节。
为了能够有效的福冈问内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
printf("%p"\n,&x); %p专门来打印地址的
int * pa = &a;// pa 是用来存放地址的,在C语言中pa叫指针变量
//* 说明pa是指针变量
// int 说明pa 执行的对象是int类型的
int main()
{
int a =10;
printf("%p\n",&a); //%p 专门用来存放地址
int * pa = &a;//pa是用来存放地址的,在C语言中pa是指针变量
// * 说明pa是指针变量
// int 说明pa指向的对象是int类型
char ch = 'w';
char *Pc = &ch;
// pc指向的对象是char类型
system("pause");
return 0;
}
指针大小在32平台是4字节,在64平台是8字节
结构体
先看代码
struct student
{
char name[20];
int age;
double score;
};
struct book
{
char name[20];
float price;
char id[30];
};
// 结构体使用
int main()
{
struct student stu1 = {"SAIKA", 20, 99.5}; //结构体的创建和初始化
printf("1: %s %d %lf\n", stu1.name, stu1.age, stu1.score); //结构体变量(stu1).成员变量(age……)
struct student *pstu1 = &stu1;
printf("2: %s %d %lf\n", (*pstu1).name, (*pstu1).age, (*pstu1).score);
printf("3: %s %d \n", pstu1->name, pstu1->age);
// 结构体指针->成员变量名
// 结构体指针->成员变量名
// 结构体指针->成员变量名
system("pause");
return 0;
}
结果
可恶!!VScode 中文总是出问题,例如这个name 只能输出英文,中文会自动忽略!
考虑转用VS