关于C中指针的运算的研究

来源:互联网 发布:小知插件 编辑:程序博客网 时间:2024/06/14 14:13

/*关于指针的运算的研究,注意:本程序都是在VC6.0上编译通过了的,
如果是Wint-c,那么在末尾要加getch();*/
#include "stdio.h"
main()
{
int a[]={1,2,3,4,5};
int *p=a;
int i;
printf("*p=%d/n",*p);
printf("/n");
/*看下面的怎么变化吧*/
printf("++(*p)=%d/n",++(*p));
printf("++(*p)=%d/n",++(*p));
printf("++(*p)=%d/n",++(*p));
printf("++(*p)=%d/n",++(*p));
printf("++(*p)=%d/n",++(*p));//哎呀,数组里没有6啊,怎么会出现6这个数呢?难道这个东西独立了?
printf("++(*p)=%d/n",++(*p));//都出来7了,看来是真的独立了

printf("/n");
printf("/n");

for(i=0;i<5;i++)
{
 printf("p=%d/t",*p);
 p++;
}/*这种方法就是实现数组依次显示a[5]中的数据的方法了。因为a[i]只能是5个元素,所以呢,i<5。
要是超过了这个范围,那么就要乱显示了。(要特别注意的是*p的初始值是等于就近的*p的值,
后面的数据按照a[i]中的顺序依次出现。如果不信的话,可以去改变i的值,然后看看结果)*/
printf("/n");
printf("/n");

/*下面是每个元素在内存中的地址*/
for(i=0;i<5;i++)
{
 printf("p=%d/n",p);
 p++;
}//可以看到,上面的语句中如果i>=5以后,数据是乱的。也不是每个元素在内存中的地址。
return(0);

}

原创粉丝点击