#include<stdio.h>
int main()
{
void swap(int* q1, int *q2,int *q3);
int a=1, b=2, c=3;
int* p1, * p2, * p3;
//printf("please enter 3 numbers:");
//scanf_s("%d %d %d", &a,&b,&c);
p1 = &a;
p2 = &b;
p3 = &b;
swap(p1, p2, p3);
printf(":%d %d %d",a,b,c );
return 0;
}
void swap(int* q1, int* q2, int* q3)
{
void exchage(int* c1, int* c2);
if (*q1 < *q2) exchage(q1, q2);
if (*q1< *q3) exchage(q1, q3);
if (*q2 < *q3) exchage(q2, q3);
}
void exchage(int* c1, int* c2)
{
int t;
t = *c1;
*c1 = *c2;
*c2 = t;
}
除錯結果為2 1 3 ; 主函式中 指標變數的值改變沒有??有點小疑惑
uj5u.com熱心網友回復:
這是什么疑惑呢uj5u.com熱心網友回復:
按 大小順序輸出
uj5u.com熱心網友回復:
按 大小順序輸出 想知道哪來錯了 抱歉沒表述完整
uj5u.com熱心網友回復:
按 大小順序輸出 想知道哪來錯了 抱歉沒表述完整
uj5u.com熱心網友回復:
p1 = &a;p2 = &b;
p3 = &b;
還有你p3沒取c的地址誒
uj5u.com熱心網友回復:
p3改成取c的地址,我這里用樓主代碼運行結果是3 2 1uj5u.com熱心網友回復:
樓主的沒有把c地址賦值給p3。
如果按照你的修改,輸出的結果是1 2 3,順序沒變。建議測驗一下
uj5u.com熱心網友回復:
p1 = &a;p2 = &b;
p3 = &b;
確實是上面這個地方沒改成c,剛才該多來測驗了一下就是對的,輸出為3 2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27683.html
標籤:C語言
上一篇:連接一個測驗盒,能正常打開設備,但讀寫資料回傳錯誤1
下一篇:c++寫靜態庫的一個問題請教
