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,此時(shí)x,y分別引用了a,b變量。
此二類有關(guān)函數(shù)中的地址傳遞和引用傳遞務(wù)必熟練掌握領(lǐng)會。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于C語言實(shí)現(xiàn)學(xué)生選課系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于C語言實(shí)現(xiàn)學(xué)生選課系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C++實(shí)現(xiàn)LeetCode(153.尋找旋轉(zhuǎn)有序數(shù)組的最小值)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(153.尋找旋轉(zhuǎn)有序數(shù)組的最小值),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++中constexpr 與 explicit關(guān)鍵字使用實(shí)戰(zhàn)樣例
文章詳細(xì)介紹了constexpr和explicit關(guān)鍵字在C++中的用途和用法,constexpr用于聲明實(shí)體可以在編譯期求值,而explicit用于阻止不期望的隱式類型轉(zhuǎn)換,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-12-12
C++ string字符串的使用和簡單模擬實(shí)現(xiàn)
C語言中,字符串是以'\0'結(jié)尾的一些字符的集合,為了操作方便,C標(biāo)準(zhǔn)庫中提供了一些str系列的庫函數(shù),但是這些庫函數(shù)和字符串是分離的,本文給大家介紹了C++ string字符串的使用和簡單模擬實(shí)現(xiàn),感興趣的朋友可以參考下2024-06-06

