C語言之地址傳遞和引用傳遞的問題
C語言地址傳遞和引用傳遞
函數(shù)的參數(shù)傳遞方式有兩種
- 一種是普通變量傳遞數(shù)值
- 另一種為使用指針變量傳遞地址
如下列程序,程序擴(kuò)展名為C
//本程序名為:地址傳遞.c
#include<stdio.h>
void exchg(int *px,int *py){
//此類是針對地址處的數(shù)值進(jìn)行變化,指針關(guān)系不動
int tmp=*px;
*px=*py;//地址處的數(shù)值變化
*py=tmp;
//此類僅僅轉(zhuǎn)換地址,地址處的數(shù)值并無變化
/*
int *tmp;
tmp=px;
px=py;
py=tmp;
*/
}
int main()
{
int a=4,b=6;
exchg(&a,&b);
printf("a=%d,b=%d。\n",a,b);
return 0;
} 此程序中,輸出結(jié)果為a=6,b=4。
實(shí)現(xiàn)數(shù)值轉(zhuǎn)換。
參數(shù)傳遞中還有一種被稱為是“引用傳遞”,目前C語言不支持該類型的傳遞,但是C++支持。
看下列程序:
//本程序名為:引用傳遞.cpp
#include <stdio.h>
int exchg(int &x,int &y){
int tmp=x;
x=y;
y=tmp;
printf("x=%d,y=%d\n",x,y);
return 0;
}
int main(){
int a=6,b=4;
printf("a=%d,b=%d\n",a,b);
exchg(a,b);
printf("a=%d,b=%d\n",a,b);
return 0;
} 此程序代碼中exchg(int &x,int &y)函數(shù)會將a,b分別代替x,y,此時x,y分別引用了a,b變量。
此二類有關(guān)函數(shù)中的地址傳遞和引用傳遞務(wù)必熟練掌握領(lǐng)會。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
c++?error:crosses?initialization?of問題解決分析
這篇文章主要介紹了c++?error:crosses?initialization?ofde?問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
詳解C++中的vector容器及用迭代器訪問vector的方法
使用迭代器iterator可以更方便地解引用和訪問成員,當(dāng)然也包括vector中的元素,本文就來詳解C++中的vector容器及用迭代器訪問vector的方法,需要的朋友可以參考下2016-05-05
一文帶你了解C語言中static關(guān)鍵字的3個作用
static這個關(guān)鍵字是“靜態(tài)”的意思,在C語言里主要有3個作用。這篇文章主要通過一些簡單示例為大家詳細(xì)講講這3個左右,感興趣的小伙伴可以了解一下2023-04-04
C語言簡單實(shí)現(xiàn)求n階勒讓德多項(xiàng)式的方法
這篇文章主要介紹了C語言簡單實(shí)現(xiàn)求n階勒讓德多項(xiàng)式的方法,涉及C語言復(fù)雜浮點(diǎn)數(shù)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05

