Ⅰ 編寫一個C語言程序,使用指針交換兩個數的值。

#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int a,b,*m,*n,t;
m=&a,n=&b;
printf("請輸入兩個數:");
scanf("%d,%d",&a,&b);
t=*m;
*m=*n;
*n=t;
printf("交換後的值為:%d,%d\n",a,b);

return 0;
}

Ⅱ 關於C語言交換兩個數(有關指針)

在C語言中,通過函數參數傳遞,進行兩個數的交換,必須採用傳遞指針的方式,同時,在函數中,一定要對兩個指針中的數據內容進行交換才能達到交換實參地址中數據的目的。

如:

//正確的交換函數
voidswap1(int*p1,int*p2)
{
intp;
p=*p1;//通過*引用地址中的數據,進行交換
*p1=*p2;
*p2=p;
}
//錯誤的交換函數
voidswap2(int*p1,int*p2)
{
int*p;
p=p1;//這里進行改變的是形參的值,而形參只是實參的一個副本,形參本身的變化,是不能改變實參的值的!!
p1=p2;
p2=p;
}

PS:要正確認識C語言中的實參與形參,形參在使用中只是實參的副本,若形參是指針,我們可以通過形參改變實參地址中的內容,但無法改變實參本身的值!

Ⅲ C語言用指針交換兩個數

主函數里指針p指向變數a的地址,q指向變數b的地址,
*p=a,*q=b,這應該沒問題吧。
change函數的形參分別是取a的地址和b的地址,
然後用第三個變數t來實現值交換。
再列印就是互換後的值。

Ⅳ C語言用指針法交換兩個數的順序問題

int swap(int *a,int *b)//a與b分別復制主函數x與y的值,即a與x的指向相同,b與y的指向相同 { int *t; {t=a;a=b;b=t;}//通過交換,a和y的指向相同,b與x的指向相同,但是,x與y沒有改變原來指向,這樣函數swap結束,a與b消失,輸出結果不變 } 換成 int t; {t=*a;*a=*b;*b=t;}//將改變x和y指向的地址的值,達到交換目的

Ⅳ C語言指針交換兩個數……求教!

I(&b1,&b2);

b1 和 b2 已經是指針地址了 用不著在取地址了,直接
I(b1,b2);

Ⅵ C語言中如何交換兩個指針變數的的值

1、首先,就是最基本的知識,寫頭文件、函數聲明、定義變數。