C語言之地址傳遞和引用傳遞的問題
C語言地址傳遞和引用傳遞
函數(shù)的參數(shù)傳遞方式有兩種
- 一種是普通變量傳遞數(shù)值
- 另一種為使用指針變量傳遞地址
如下列程序,程序擴展名為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。
實現(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
虛函數(shù)與純虛函數(shù)(C++與Java虛函數(shù)的區(qū)別)的深入分析
本篇文章是對虛函數(shù)與純虛函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Visual Studio Code配置C/C++開發(fā)環(huán)境的教程圖解
這篇文章主要介紹了Visual Studio Code配置C/C++開發(fā)環(huán)境的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06c++ vector(向量)使用方法詳解(順序訪問vector的多種方式)
vector是向量類型,它可以容納許多類型的數(shù)據(jù),如若干個整數(shù),所以稱其為容器,本文介紹一下使用方法2013-12-12