c語言指針交換變數
① c語言 用指針作為參數,實現交換兩個字元串變數的值 error C2664 求大神指導
#include <stdio.h>
#include <string.h>
void swap(char a[100],char b[100]);
int main()
{
char str1[100],str2[100];
printf("input 1:");
gets(str1);
printf("input 2:");
gets(str2);
swap(str1,str2);
printf("str1:%s\nstr2:%s\n",str1,str2);
return 0;
}
void swap(char a[100], char b[100])
{
char t[100];
strcmp(t,a);
strcmp(a,b);
strcmp(b,t);
}
② c語言用指針交換兩個數
在 huan(int *p1,int *p2)這個函數中,交換的只是兩個指針的指向,但是函數的結束並穗、返慶和回,這兩個指針本身就譽蔽盯消失了(它們的值並不會傳回到main()函數中)所以,最後的結果沒有交換。
如果要起到交換的作用,這個函數應該這樣寫:
void huan(int *p1,int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
③ c語言 編一程序 交換兩個變數的值(用指針做函數參數)
#include <stdio.h>
void Swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
printf("a=%d,b=%d ",a,b);
}
int main()
{
int a = 5;
int b = 10;
printf("a=%d,b=%d ",a,b);
Swap(a,b);
printf("a=%d,b=%d ",a,b);
return 0;
}
(3)c語言指針交換變數擴展閱讀:
形參和實參的特點
1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。
2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。
3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。
4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
網路-形參