简谈C语言中的指针:
1.指针是什么?
当程序中定义了一个变量,那么在对程序进行编译的时候,系统会给这个变量分配内存单元;内存区中的每一个字节都有一个编号,这就是“地址”;通过这个地址就可以找到定义的变量,也就是说地址指向该变量;那么将该地址就可以形象化的称为“指针”。
2.定义指针变量
类型名 * 指针变量名
例如:int * pointer_1;
3.编写程序
#include<stdio.h>
int main()
{
int a=10,b=20; //初始化变量a,b
int * pointer_a,* pointer_b;//定义指向整型数据的指正变量
pointer_a=&a; //把a的地址赋值为指针变量pointer_a
pointer_b=&b;//把b的地址赋值为指针变量pointer_b
printf("a=%d,b=%d\n",a,b);//输出变量a,b的值
printf("pointer_a=%d,pointer_b=%d\n",pointer_a,pointer_b);//输出变量a,b的地址
printf("*pointer_a=%d,*pointer_b=%d\n",*pointer_a,*pointer_b);//输出变量a,b的值
return 0;
}
程序输出结果为:
a=10,b=20
pointer_a=1926967504,pointer_b=1926967508
*pointer_a=10,*pointer_b=20
由以上程序可以看出,* pointer_a和 *pointer_b,就是变量a和b,而pointer_a和pointer_b是变量a和b的地址,由此可以知道pointer_a是a的指针变量,pointer_b是b的指针变量。
注意:
“&”:是取地址符,&a就是变量a的地址。
“ * ”:是指针运算符, *pointer_a代表指针变量pointer_a指向的对象。
一个变量的指针的含义包含两个方面,一个是存储单元编号表示的地址,一个它指向的存储单元的数据类型。