个人觉得,在C语言中,就目前我自己的学习程度来说最重要的就是指针。我们通常都会听说Linux中一切皆文件,而C语言中一切皆地址。
指针可以理解为指针变量,指针变量也是变量,正常的变量存的是值,而指针变量里存的是地址。
int* p;
定义了一个指向整型的指针,就是这个指针指向的数据类型是整型。
int* p = &a;
将变量a
的地址赋值给指针p
,也就是p
里面存的是变量a
的地址。
&
是取地址符
#include <stdio.h>
int main() {
int a = 1;
int* p = &a;//将变量a的地址赋值给指针p
printf("%d\n", *p);
return 0;
}
*
是取地址中的值,最终输出的结果为1。
如果还没理解,举一个非常简单的例子:
每个变量都像一个盒子一样,里面可以装上东西,不同类型的变量对应着可以装不同类型的东西的盒子,变量还有一个属性叫做地址,这是一种贴在盒子上的数字标签。