| 導購 | 订阅 | 在线投稿
分享
 
 
 

指針問題8

來源:互聯網網民  2010-04-07 23:38:40  評論
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:

#include <stdio.h>

void chang(int *pt1,int *pt2);

main()

{

int *p1,*p2,a,b;

scanf("%d,%d",&a,&b);

p1=&a;

p2=&b;

chang(p1,p2); //問題1:這裏p1是指針變量,但爲什麽可以將p1賦值給形參的*pt1呢??

p1不是表示&a馬?

printf("%d,%d\n",*p1,*p2);

}

void chang (int *pt1,int *pt2) //問題2:*pt1在這裏表示什麽意思?它表示是&a還是表示a這個變量呢??

{

int t;

if(*pt1<*pt2)

{

t=*pt1; //問題3:這裏的*pt1和形參的*pt1意思是一樣的馬??

*pt1=*pt2; //問題4:*pt1不是應該表示一個變量馬??不是說子程序內的改變並不影響主函數中的

數值馬??

*pt2=t;

}

return;

}

/*如果我把上面的調用的東西改成

void chang (int *pt1,int *pt2)

{

int *t;

if(*pt1<*pt2)

{

t=pt1;

pt1=pt2;

pt2=t;

}

return;

}

問題5:爲什麽輸出時還是不變呢?

是不是在調用中子程序的時候只有指針和數組下標可以改變,而數值的話就不可以改變呢??謝謝!希望各位高手能一一回答我的問題,謝謝!*/


參考答案:

你不要把int* pt1看成int和*pt1啊,int*表示聲明一個整型指針,int* pt1就表示pt1是一個整型指針。

*pit就表示一個整型了。記住有星號表示值,沒有星號表示指針。

用指針調用會把內存的東西改了的,p1,p2都是地址,*p1,*p2就是在p1,p2那位置開始的單元所記錄的一個整型的值,把地址傳進函數,然後改了內存單元的內容,*p1,*p2當然就變了啦。

t=pt1;

pt1=pt2;

pt2=t

這三句只是改了指針的指向,且t,pt1,pt2都是局部變量,一點意義都沒有。

函數結束後*p1和*p2的內容根本沒有改變。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]#include <stdio.h> void chang(int *pt1,int *pt2); main() { int *p1,*p2,a,b; scanf("%d,%d",&a,&b); p1=&a; p2=&b; chang(p1,p2); //問題1:這裏p1是指針變量,但爲什麽可以將p1賦值給形參的*pt1呢?? p1不是表示&a馬? printf("%d,%d\n",*p1,*p2); } void chang (int *pt1,int *pt2) //問題2:*pt1在這裏表示什麽意思?它表示是&a還是表示a這個變量呢?? { int t; if(*pt1<*pt2) { t=*pt1; //問題3:這裏的*pt1和形參的*pt1意思是一樣的馬?? *pt1=*pt2; //問題4:*pt1不是應該表示一個變量馬??不是說子程序內的改變並不影響主函數中的 數值馬?? *pt2=t; } return; } /*如果我把上面的調用的東西改成 void chang (int *pt1,int *pt2) { int *t; if(*pt1<*pt2) { t=pt1; pt1=pt2; pt2=t; } return; } 問題5:爲什麽輸出時還是不變呢? 是不是在調用中子程序的時候只有指針和數組下標可以改變,而數值的話就不可以改變呢??謝謝!希望各位高手能一一回答我的問題,謝謝!*/[br][b]参考答案:[/b][br]你不要把int* pt1看成int和*pt1啊,int*表示聲明一個整型指針,int* pt1就表示pt1是一個整型指針。 *pit就表示一個整型了。記住有星號表示值,沒有星號表示指針。 用指針調用會把內存的東西改了的,p1,p2都是地址,*p1,*p2就是在p1,p2那位置開始的單元所記錄的一個整型的值,把地址傳進函數,然後改了內存單元的內容,*p1,*p2當然就變了啦。 t=pt1; pt1=pt2; pt2=t 這三句只是改了指針的指向,且t,pt1,pt2都是局部變量,一點意義都沒有。 函數結束後*p1和*p2的內容根本沒有改變。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有