与其说指针是一种工具,不如先说指针是一种数据类型。
-------------------------------------------------------------华丽的分割线-----------------------------------------------
指针是什么呢?指针是一种数据类型。
首先,我们先这样
int a;
int *b;
a是一个int型变量,对吧?那类比一下,b是个int *型变量对吧?
我们换一种说法:b是一个int型指针 其中*是标识符
下面我们来看这个:
int *p1;
int **********p2;
怎么样?怕不怕?
其实没什么可怕的,无论有几个"*"它都是一个变量!
那你就会问了,指针里面到底装着什么呢?我们继续来看这样一段代码:
#include <stdio.h> int main()
{
int a = ;
int *p;
p = &a;
printf("a的地址是:%d\t a的值是:%d\n", &a, a);
printf("指针p的地址是:%d\t p的值是:%d", &p, p);
return ;
}
运行结果如下:
这样你可能还不够直观,不如我们画一下内存图吧!
那你可能会问了,指针有什么用呢?答:间接赋值
任何事物都有它存在的意义,间接赋值这四个字你可能没什么感觉,不就是:
int i = ;
int *p = &i;
*p = ;
是的,这么一看用法就是这么简单,但是你有没有想过,如果把指针用到字符串身上呢?(未完待续)