日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

交换两个整型变量的数值

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交换两个整型变量的数值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include<stdio.h>
#include<conio.h>
main()
{
void swap(int *p1,int *p2);//定義一個函數作用是交換兩個整型變量的數值
int x,y;//定義整型變量x,y
int *a1,*a2;//定義整型指針a1,a2
printf("任意輸入兩個數值:");
scanf("%d,%d",&x,&y);//任意輸入兩個數值賦值到x,y中
a1=&x;
a2=&y;
swap(a1,a2);//交換 a1,a2
printf("%d,%d",*a1,*a2);
getch();
return 0;
}
void swap(int *p1,int *p2)//調用swap交換函數,交換兩個變量的值
{
int p;
p=*p1;
*p1=*p2;
*p2=p;
}

我認為本題的重點是在于對*p及p的理解。 ?*p是指針,作用是存放變量的地址而p是地址所儲存的內容。 關鍵是子函數調用時交換的應用,注意是變量值的交換不是指針指向問題。

輸出結果 ?任意輸入兩個數值:1,2
? ? ? ? ?2,1

void swap(int *p1,int *p2)
{
int *p;
*p=*p1;//此語句有問題
*p1=*p2;
*p2=*p;
}

*p1就是x,是整型變量。而*p是指針變量p所指向的變量。但p中并無確定的地址值,它的值不可預見。*p所指向的單元也不可預見。

因此對*p賦值可能會破壞系統的正常工作狀況。

void swap(int *p1,int *p2)
{
int *p;
p=p1;
p1=p2;
p2=p;
}

C語言中實參和形參之間的數據傳遞是單向的“值傳遞方式",指針變量作為函數參數也要遵循這個規則。調用函數不可能改變實參指針變量的值,但是可以改變實參指針變量所指變量的值。

?

#include<stdio.h> int comp(int*x,int*y) {if(*x>*y) return *x;elsereturn *y; } int main() {int x,y,*p1,*p2; scanf("%d,%d",&x,&y); p1=&x; p2=&y; printf("max=%d\n",comp(p1,p2)); return 0; }

1,2
max=2

--------------------------------
Process exited after 13.7 seconds with return value 0
請按任意鍵繼續. . .

?

?

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/xBryant/p/6601576.html

總結

以上是生活随笔為你收集整理的交换两个整型变量的数值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。