大一c语言编程简单问题,这两个基于指针的程序有何区别?谢谢各位大神
这两个小程序很好的说明了指针变量与普通变量的区别,首先我们要清楚指针指向的是一块儿存储区域,而这个存储区域里面存放着我们放如的数据
地址 001 002 004 005
数据 10 20 40 50
我们拿上面的两组数据示意一下,
左边程序里边定义的是指针类型的变量temp,显而易见 p1 p2也是两个指针,我们可以假p1=001,p2=002;
右边程序里边定义的是普通类型的变量temp,显而易见 p1 p2也是两个指针,在这个程序里面p1=004,p2=005,
左边程序 第一步:p1=temp;也就是把001给了temp,
第二步:p1=p2;也就是把002给了p1,此时p1的指向发生了变化,它指向的那块儿内存不再指向 10,而是指向了002这块儿地址所存放的数据,也就是20,
第三步: p2=temp;也就是把001给了p2,此时的p2的指向放生了变化,它指向的那块儿内存不再指向20而是指向了001这块儿地址所存放的数据,也就是10,
右边程序它没有改变指针的指向,而是直接改变的指针所指向的内存里面的数据,自己可以一步步分析一下,你可以的,呵呵呵
大一c语言程序设计,指针变量p,数组a,当p=a时,接下来类似p+i之类的都可以将p用a代替?
是的,可以通过数组也可以通过指针,p代表数组首地址,比如*(p+i)=a[i];或者p[i]=a[i];
c语言中,什么是变量指针,什么是指针变量,并举例说明
变量指针:指向的数据为变量的指针,如char *p。与此相对的是常量指针,如const char* p。
指针变量:类型为指针的变量,如char *p。与此相对的是指针常量,如char* const p。