當前位置:首頁 » 編程語言 » c語言地址傳遞例題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言地址傳遞例題

發布時間: 2022-09-20 23:25:32

1. c語言,指針,地址值的傳遞

對函數myadd(&x,y&)引用就是x,y的地址賦值給指針a,b,故*a表示指針a指向的變數即x的值,*a=x,同理,*b=y。
因為&x,&y表示的是x,y的地址。所以傳遞的是地址。意思就是說,函數可以通過地址引用變數。

2. c語言二級傳地址題

int *p = &m 指針p里存放的是m的地址,然後把指針p指向的地址(也就是m的地址)傳到函數f里,因為s是函數f()的形參 ,所以 *s = k是把k的存到形參s指向的地址(也就是m的地址),而 printf("%d,%d",m,*p);中的*p 的含義是取指針p指向的地址里的內容。

3. c語言二級傳地址題

我知道你問的意思了。沒什麼不同,沒有「data=」也同樣能使data增1,因為在change中操作的是形參指針data指向的對象*data,它已把原調函數中的data的值改變了。所以,如果就這個功能的話,change函數連返回值都不需要,

void change(int *data){
(*data)++;
}
就可以了。你試試……
這里有個問題:change中的data是int *型指針,而main中的data是int型變數。它們倆寫得一樣但是兩個性質不同的變數。

4. c語言地址傳遞函數例題

指針就是地址,那也就是指針變數作為函數參數的傳遞嘍 。
例:對輸人的兩個整數按大小輸出。
#include<stdio.h>
void main()
{
void swap(int *p1,int *p2);
int a,b.
int *pointer1,*pointer2;
scanf("%d,%d",&a,&b);
pointer1=&a; pointer2=&b;
if(a<b)
swap(pointer1,pointer2);
printf("\n%d,%d\n",a,b);
}
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

5. C語言數據結構中地址傳遞問題。

指針只是內存地址,他需要指針實體才具備數據操作;
而類型定義的變數在C語言是個實體對象,它包含數據在內;
你聲明了一個結構指針,卻沒有結構實體,是不能進行操作的;你的指針不知指到哪裡去,運行就死了。
想用指針,應該這樣:加個結構實體,指針指向結構實體就可以了。
stacklist Ro,*s;
s=&Ro;

6. 關於c語言形參實參傳地址傳數值的問題

C語言中函數的參數傳遞(值傳遞,地址傳遞,引用傳遞)
/* ^_^ 2015年11月3日09:58:03 辨析 C語言中函數的參數傳遞*/

//值傳遞 其實質是將數值傳遞給其他倆個變數,自己變數裡面的值並沒有改變----所以說是值傳遞。
# include <stdio.h>
void exchange();
int main (void)
{
int x,y;
x=3;
y=4;
exchange(x,y); //這就是典型的值傳遞,它把X,Y的值傳遞給變a和b;
printf("%d %d\n",x,y); //a,b的值進行交換,但是變數X,Y裡面的值並沒有交換。
return 0;
}
void exchange(int a,int b)
{
int temp;
temp =a;
a=b;
b=temp;
printf("%d %d\n",a,b);
}
//地址傳遞 (提到地址二字,應該始終明確,C語言中的地址是基於指針的,所以地址傳遞是一定會用指針的)
# include <stdio.h>
void exchange();
int main (void)
{
int x,y;
x=3;
y=4;
exchange(&x,&y); //這就是典型的地址傳遞,它把X,Y變數地址傳遞給指針a和b;
printf("%d %d\n",x,y); //*a,*b的值進行交換,就是找到a,b對應的地址交換地址裡面的值,其實也就是
//找到 a,b值進行交換。
return 0;
}
void exchange(int *a,int*b)
{
int temp;
temp =*a;
*a=*b;
*b=temp;
printf("%d %d\n",*a,*b);
}

7. C語言指針地址傳遞

首先你要清楚一個點,這里的a,b都是變數名稱,舉個例子在地址0X0000FFFF處存了一個int型的變數為10,為了方便程序員使用,我們給他命名為a,那麼我們在用a的時候其實就是在用那個地址為0X0000FFFF處的變數。
好了回到這里,*py和*px表示的是指針,py和px才是地址。假設a的地址是0X0000FFFF,該地址所存的內容為10,那麼這里的px也是-X0000FFFF,而*px表示該地址所存的內容,也就是10.。那麼可以很好理解這里其實不是交換地址,而是交換值。

8. 求C語言程序: 參數的「傳值」方式與「傳地址」方式編程練習

//下面提供一個程序代碼供參考

#include<stdio.h>
//計算並聯電阻,其中jieguo以引用傳遞,函數中修改後,直接改變原來的數值;
//r1,r2以數值的方式傳遞
voidjisuan_bing(double&jieguo,doubler1,doubler2)
{
jieguo=r1*r2/(r1+r2);
}

//計算串聯電阻,其中jieguo以地址傳遞,函數中修改後,直接改變原來變數的數值;
//r1,r2以數值的方式傳遞
voidjisuan_chuan(double*jieguo,doubler1,doubler2)
{
*jieguo=r1+r2;
}

intmain()
{
doublea,b,bing,chuan;
printf("輸入兩個電阻阻值,以空格隔開:");
scanf("%f%f",&a,&b);
getchar();//吃掉scanf後輸入緩沖區的回車符
jisuan_bing(bing,a,b);//計算並,傳bing引用
jisuan_chuan(&chuan,a,b);//計算串,傳chuan的地址
printf("並聯電阻阻值=%6.2f ",bing);//
printf("串聯電阻阻值=%6.2f ",chuan);
getchar();//等用戶按回車結束
return0;
}

9. 計算機C語言傳值傳址的問題。。希望有解析和例題

傳值,若在函數中改變了該值,原值不變,因為傳進來的是個副本;
傳址,若在函數中改變了該值,則原值也變,因為傳進來的是地址,則在函數中的操作相當於直接操作該值

10. 請教關於字元串地址傳遞的C語言題

加2個列印語句,你就明白 p, s 是地址數值。
int fun(char * s)
{char * p=s; //地址傳遞
printf("%x %x\n",p,s); // 輸出地址數值看看
while(*p!=0) p++; // *p 是指針指向的字元(ASCII) 值,p是地址值。
// *p==0 時 字元串結束,0 就是 '\0'.
printf("%x %x\n",p,s); // 輸出變化後的地址數值看看,增加數就等於字元串長度
return(p-s);
}
選D, 字元串 「goodbye!」長度 8。