武夷学院学习吧 关注:1贴子:29
  • 0回复贴,共1

给初学者:C语言中的指针变量

只看楼主收藏回复

首先要搞清楚的几个概念:
1、指针变量也是一种内存变量(假如:int *p),它本身在也有存储地址,它的地址可以用&p获取。
2、存储在指针变量中存储的内容,即它指向的内存单元,为某个内存单元的地址,用p获得。
3、指针变量所指地址的内容用*p获得。
4、p++,即p=p+1;指针变量p中存储的地址值的变化,具体增加多少根据指针变量的基类型而定。
5、*p++,因++运算与*运算优先级相通,且为由右向左,所以*p++的值实际上是先对p的值自增,在求其地址指向的值。
例子如下:
#include <math.h>void main()
{
int i=2;
int *p,*q;
p=&i;
printf("address of p=%d\n",&p);
printf("value of p=%d\n",p);
printf("value of *p=%d\n",*p);
printf("-------after point p++----------------\n");
q=p++;//地址变量中存储的地址值增加了。
*q=4;
printf("address of p=%d\n",&p);
printf("value of p=%d\n",p);
printf("value of *p=%d\n",*p);
printf("-------value of q---------\n");
printf("address of q=%d\n",&q);
printf("values of q=%d\n",q);
printf("values of *q=%d\n",*q);
printf("values of &*q=%d\n",&*q);
printf("values of *q++=%d\n",*q++);
}




IP属地:福建1楼2012-10-27 14:01回复