c语言基础之指针、数组和结构体
指针是c语言的灵魂怎么强调都不为过,指针也是c语言最复杂和难理解的概念,数组是多个类型相同的变量在一块连续的内存空间,数组是最基本也算是最简单的数据结构,结构体本质上就像是一个包裹,包含了一个或多个类型的变量,结构体就像面向对像的类一样给我们提供了一个抽象的思维方式。 该怎样去理解指针呢,这里破砖引玉说一下我的看法,学习一个新东西的时候可以在脑子里想像一个和生活中比较相似的概念或物体等,比如类型系统里不同的类型会占用不同长度的内存一样,可以把类型系统想像成生活中常见的长度单位毫米、厘米,这样可能会更容易理解一些,指针可以看成是一块内存的标识通过指针可以修改它标识的内存数据,就像人在生活中通过楼号加单元号和房间号找到房间一样。
指针的定义
char *p; int *p; double *p;
上面定义的指针就好像生活中我们只知道人名却没见过的本人情况,由于指针p还不知道它是哪块内存的标识所以是不能对它进行操作的。
char a = 10; char *p = &a; 或 int *p = (int *)malloc(sizeof(int) * 100);
上面都是在告诉指针p它标识的是哪块内存,就像生活中介绍这个人叫张三。
数组的定义
char arr[10]; int arr[10]; double arr[10];
结构体的定义
///定义一个小狗的结构体 struct dog { char age; char sex; int color; char name[32]; };
struct dog dogs[10];///小狗的数组 struct dog *p = (struct dog *)malloc(sizeof(struct dog));///指针
后续C语言实战部分再回头来详细说明