什么是指针?
指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。与之对应的还有一个指针变量,指针变量则是指针变量是指存放地址的变量。因地址的改变而做出指定性质的衡量变法。
接下来是指针使用的范例:
#include <stdio.h>
int main()
{
int a = 1;
int b = 8;
int *p=&a;
int *l=&b;
printf("a=%d,b=%d\n",a,b);
printf("a=%d, b=%d\n",*p,*l);
}
在这一段中p和l被称为指针变量,在里面存储的是a和b 的地址,通过*p,*l来访问a和b的值。
#include <stdio.h>
int main()
{
int a = 1;
int b = 8;
int *p = &a;
int ppp = 10;
int p2p2p2pp2;
int *p2 = &b;
p2p2p2pp2 = 10;
int *p3;
p3 = &a;
printf("a:%d\n",a,b);
printf("a:%d\n",*(&a),*(&b));
printf("a:%d\n",*p,*p2);
printf("a:%p\n",&a,&b);
}
和上一段代码无二,告诉我们指针变量中存储的是地址,我们需要对地址进行访问才可以取得对应的值
#include <stdio.h>
void swapData(int *pa, int *pb )
{
int tmp;
tmp = *pa;
*pa = *pb;
*pb = tmp;
printf("swap: a=%d.b=%d\n",*pa,*pb);
}
int main()
{
int a = 10;
int b = 20;
swapData(&a,&b);
printf("main: a=%d.b=%d\n",a,b);
}
这一段代码中,揭示了使用指针变量做为参数。其实际上也是和其他变量在传参时一样的使用方法
#include <stdio.h>
int main()
{
int array[] = {11,22,33,55,9,10};
int *parray;
parray = array;
parray = &array[0];
int i;
for (i = 0; i < 6; i++)
{
printf(" %d ", *parray);
parray++;
}
}
使用指针来遍历数组。在使用数组时,这里parray可以视作指向数组的第一个元素。而之后的p++则是让该指针一步步下走,直到数组结束。