内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
#include <stdio.h>
//指针
/*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;
*pa = 20; //*在这里的作用是解引用操作,*pa就是通过pa里面存放的a的地址找到a,所以这个将20赋给*pa,其实就是赋给a
printf("%d\n", a);
return 0;
}*/
//指针大小
/*int main() {
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(long*));
printf("%d\n", sizeof(float*));
printf("%d\n", sizeof(double*));
//指针的大小都是相同的
//指针需要多大的空间,取决于地址的存储需要多大的空间
//地址大小需要看电脑用的是多少位的机器 - 32位机器就是4字节,64位机器就是8字节
return 0;
}*/
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
//结构体
//创建一个学生
/*struct stu {
char name[20];
int age;
double score;
};
//创建一个书的类型
struct book {
char name[20];
float price;
char id[30];
};
int main() {
struct stu s = { "张三",20,85.5 }; //结构体的创建和初始化
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);
return 0;
}*/