1樓:匿名使用者
swap 1:temp是乙個指標,*temp指temp所指區域的值,因為temp未初始化,*temp指向乙個非法的位址。對非法的位址賦值,當然會出錯。
swap 2:*temp即為a,即a = *p1, *p1=*p2, *p2 =a。達到的交換。
正確且合理的修改是:void swap(int *p1,int *p2)
2樓:匿名使用者
int *temp;
因為temp是乙個int型別的指標,所以他要指向乙個變數*temp是他所指向變數的值,int *temp=&a;*temp就是a的值,
如果沒有那麼它就是空的,訪問他就是非法的。
你還要再熟悉下指標的用法哦
3樓:匿名使用者
你沒搞清楚什麼是指標。
int *temp;
*temp=*p1;
temp沒有指向任何東西,你對他用*操作肯定出錯。
通常應該是這樣寫的:
void swap(int *p1,int *p2)
4樓:
temp需要乙個初始值,你可以temp=0
實現的是p1和p2之間值的互換,所以temp的初始無所謂,但是要有的。
簡單程式速度
include main printf n for j 3 j 0 j printf n 我寫的應該算是簡單程式了吧。main printf n if i 3 b else b 你可以用兩個迴圈分別輸出上三角和下三角。迴圈語句的技巧是 可知數量的用for,未知數量的用while建議你看一本c語言的語...
求個linux下c語言簡單程式,linux下最簡單的c程式怎麼編譯
你這裡用了管道符 這個程式沒辦法寫,因為linux會理解為執行了三個程式 run 11 2233 並且上面三個程式 22和33都被解釋為程式了 輸入輸出互為管道你理解肯定有問題,請再考慮考慮,linux命令列裡面大於號小於號豎線都不是隨便能用的。linux下最簡單的c程式怎麼編譯 gcc g hel...
C 類的簡單程式執行有錯誤,求大神指點
include include using namespace std class cstudents cstudents cstudents cstudents cstudents char name,int age void cstudents initialize char name,int ...