當前位置:首頁 » 編程語言 » c語言aa1什麼意思

c語言aa1什麼意思

發布時間: 2024-09-15 03:21:06

c語言 寫一個函數交換兩個數的值,為什麼一定要用指針

運用代碼解釋指針運用的理解如下:

#include<iostream>

using namespace std;

int fun1 (int a,int b)

{

int c;

c=a;a=b;b=c;

cout<<"a1:"<<a<<";b1:"<<b<<endl;

}

int fun2 (int *a,int *b)

{

int *c;

c=a;a=b;b=c;

cout<<"a2:"<<*a<<";b2:"<<*b<<endl;

}

int fun3(int *a,int *b)

{

int *c;

c=*a;*a=*b;*b=c;

cout<<"a3:"<<*a<<";b3:"<<*b<<endl;

}

int fun4 (int *a,int *b)

{

int c;

c=*a;*a=*b;*b=c;

cout<<"a4:"<<*a<<";b4:"<<*b<<endl;

}

int fun5 (int &a,int &b)

{

int c;

c=a;a=b;b=c;

cout<<"a5:"<<a<<";b5:"<<b<<endl;

}

int main()

{

int aa=1,bb=2;

fun1(aa,bb);

cout<<"aa1:"<<aa<<";bb1:"<<bb<<endl;

fun2(&aa,&bb);

cout<<"aa2:"<<aa<<";bb2:"<<bb<<endl;

fun3(&aa,&bb);

cout<<"aa3:"<<aa<<";bb3:"<<bb<<endl;

fun4(&aa,&bb);

cout<<"aa4:"<<aa<<";bb4:"<<bb<<endl;

aa=1,bb=2;

fun5(aa,bb);

cout<<"aa5:"<<aa<<";bb5:"<<bb<<endl;

return 0;

}

輸出結果為:

a1:2;b1:1

aa1:1;bb1:2

a2:2;b2:1

aa2:1;bb2:2

aa3:1;bb3:2

a4:2;b4:1

aa4:2;bb4:1

a5:2;b5:1

aa5:2;bb5:1

main中調用fun1()時,將實參a,b的值傳遞給了交換函數,如果此時在swap1中列印,可以看到結果是正確的,但是該過程其實是將aa和bb分別復制了一份給了函數,執行完fun1()之後,aa和bb的值沒有任何變化。

fun2(),看似的確使用了指針,但還是失敗,因為這里是將aa和bb的地址給交換了,而並沒有交換aa和bb的值。在這里由於未給c賦值,c中並沒有確定的值,c中的值是不可預見的。此時c可能指向一個未知的存儲單元。

而嚴重的情況是,該單元的數據可能是有用的,因此fun2()不但沒有實現兩個數的交換,反而給系統的穩定性帶來威脅。

fun3(),將int賦卜粗值給int *,編譯錯誤。

fun4()是正確的。為好弊螞了在函數中改變了的變數能被其它函數調用,正確的辦法是用指針變數作為函數參數,在函數執行過程中使指針變數所指向的變數值發生變化。

函數調用結束後,哲別變數值的變化依然保留下來,這樣就實現了通過函數調用是變數的值發生變化,在其它函數中可以使用這些改變了的值的目的。

fun5()也是正確的,這是引用的重要應用之一。對於引用的操作實際上是作用在引用所因的對象上。

(1)c語言aa1什麼意思擴展閱讀

在函數中的參數,並不是調用者的變數,而是臨時申請的變數a和b存放main函數中變數a和b的值,並在函數中用來計算,在fun中給a和b賦值都是在操作這兩個臨時申請的變數,函數返回後,這兩個變數被舍棄,函數調用也沒有將這兩個臨時變數的值返回給main函數中調用使用的參數功能。

所以,在函數中要操作調用者申請的變數,需要給出它們的指針,函數中用指針來找友埋到這些變數的位置和內容。

㈡ 已知xy變數值,求二元一次方程abc系數 C語言

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<cstring>
#include<algorithm>
usingnamespacestd;
intmul(inta,intb)
{
into,p,q;
if(a>=b)
p=b;
else
p=a;
for(o=p;o>=1;o--)
{
升埋和if(a%o==0&&b%o==0)
{
q=o;
break;
吵盯}
}
return(a*b)/q;
}
intmain()
{
floata=0.0,b=0.0,c=0.0;
intx1,x2,x3,y1,y2,y3;
cin>>x1>>y1;
cin>>x2>>y2;
cin>>x3>>y3;
inth1,h2,aa1,aa2,bb1,bb2;
h1=y2-y3;
液枝h2=y1-y3;
aa1=(x2-x3)*(x2+x3);
aa2=(x1-x3)*(x1+x3);
bb1=x2-x3;
bb2=x1-x3;
if((bb1<0&&bb2<0)||(bb1>0&&bb2>0))
{
intk,l1,l2,m1,m2;
k=mul(abs(bb1),abs(bb2));
l1=k/abs(bb1);
l2=k/abs(bb2);
m1=h1*l1,aa1=aa1*l1;
m2=h2*l2,aa2=aa2*l2;
m1=m1-m2;
aa1=aa1-aa2;
a=m1/aa1;
b=(y2-y3-a*(x2+x3)*(x2-x3))/(x2-x3);
c=y3-a*x3*x3-b*x3;
}
if((bb1<0&&bb2>0)||(bb1>0&&bb2<0))
{
intk,l1,l2,m1,m2;
k=mul(abs(bb1),abs(bb2));
l1=k/abs(bb1);
l2=k/abs(bb2);
m1=h1*l1,aa1=aa1*l1;
m2=h2*l2,aa2=aa2*l2;
m1=m1+m2;
aa1=aa1+aa2;
a=m1/aa1;
b=(y2-y3-a*(x2+x3)*(x2-x3))/(x2-x3);
c=y3-a*x3*x3-b*x3;
}
cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;
cout<<"QQ:2416560314原創代碼,轉載前請聯系我!"<<endl;
return0;
}

㈢ C語言字元數組如何轉成16進制

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

熱點內容
圖靈姬編程 發布:2024-11-25 00:52:40 瀏覽:314
編譯好的程序不閃一下就沒了 發布:2024-11-25 00:48:51 瀏覽:549
ts設置編譯輸出目錄 發布:2024-11-25 00:43:28 瀏覽:448
元神比較好的雲伺服器 發布:2024-11-25 00:43:20 瀏覽:189
草人御魂怎麼配置 發布:2024-11-25 00:30:37 瀏覽:737
ftp上傳流程 發布:2024-11-25 00:18:27 瀏覽:89
安卓服光遇什麼時候上線的 發布:2024-11-25 00:13:22 瀏覽:918
80萬能買到酷路澤的什麼配置 發布:2024-11-25 00:10:57 瀏覽:336
新浪微博中如何修改密碼 發布:2024-11-25 00:10:52 瀏覽:100
iphone訪問pc 發布:2024-11-24 23:53:43 瀏覽:480