⑴ 指針和引用有什麼區別 請寫一個簡單的程序說明
1.從內存上來講系統為指針分寸內存空間,而引用與綁定的對象共享內存空間,系統不為引用變數分配內容空間。
2指針初始化以後可以改變指向的對象,而引用定義的時候必須要初始化,且初始化以後不允許再重新綁定對象。
3.所以引用訪問對象是直接訪問。指針訪問對象是間接訪問。
4。如果pa是指針,那麼*pa就是引用了。
但是兩者在作為形參的時候非常相似,區別是指針拷貝副本,引用不拷貝。程序如下:
#include<stdio.h>
voidpt(int*pta,int*ptb)
{
int*ptc;
ptc=pta;pta=ptb;ptb=ptc;
}
voidref(int&ra,int&rb)
{
intrc;
rc=ra;ra=rb;rb=rc;
}
voidmain()
{
inta=3;intb=4;
int*pa=&a;int*pb=&b;
pt(pa,pb);
printf("zhen:a=%d,b=%d ",a,b);
ref(a,b);
printf("yinyong:a=%d,b=%d ",a,b);
}
輸出結果如下圖:
⑵ C語言編程:利用指針編寫程序,求一維數組中的最大和最小的元素值
#include<stdio.h>
int main()
{
int a[111],max,min,*p,n,k=0;
p=a;//指針p指向數組a首地址
do{
scanf("%d",&n);
p[k++]=n;
}while(getchar()!=' ');
max=min=p[0];
for(p=a;p<a+k;p++)
{
if(*p>max)
max=*p;
if(*p<min)
min=*p;
}
printf("max=%d,min=%d",max,min);
return 0;
}