对于C语言中指针是非常重要的内容,也是C语言的魅力所在。下面我们来看一段代码理解指针:
#include <stdio.h>
int main(int argc, const char * argv[]) {
//定义int类型的变量a
int a = 10;
//定义一个指针变量p
int *p;
printf("更改前的a=%d\n", a);
//将a的地址赋值给指针变量p
p = &a;
//通过指针变量p间接修改变量a的值。(即通过指针变量p储存的a的地址,找到指向的变量a的储存空间并赋值)
*p = 20;
printf("更改后的a=%d\n", a);
printf("*p=%d\n", *p);
printf("*p=a=%d,可见*p和a指的都是相同的内容。\n", *p);
return 0;
}
对于上面的代码关键要理解int * p;中的" *p"与下面的*p = 20;中的 “ *p ”是完全不同的。前一个是指针变量p的定义,并且是int类型的指针变量;后面一个是指针变量p储存的地址所对应指向的储存内容,相当于上面代码中的*p与a所指的内容是一样的。
另外,对于上面代码中的两行代码:
int *p;
p=&a;
我们常常将两句精简成一句:int *p=&a;
好了,今天就学这么多,慢慢理解并吸收转化为自己的知识才是最重要的。