最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言函數(shù)的參數(shù)使用指針

 更新時間:2021年06月28日 10:29:45   作者:it小白求知路  
這篇文章主要介紹了C語言函數(shù)的參數(shù)使用指針,本文講述了指針在作為函數(shù)參數(shù)時候的使用方法,解析值傳遞和值引用的區(qū)別案例,希望對你有所幫助

在c語言中實參和形參之間的數(shù)據(jù)傳輸是單向的“值傳遞”方式,也就是實參可以影響形參,而形參不能影響實參。指針變量作為參數(shù)也不例外,但是可以改變實參指針變量所指向的變量的值。

#include <stdio.h>
void swap1(int x,int y),swap2(int *px,int *py),swap3(int *px,int *py);
int main(void)
{
	int a=1,b=2;
	int *pa=&a,*pb=&b;
	swap1(a,b);
	printf("s1:a=%d,b=%d\n",a,b);
 
	a=1,b=2;
	swap2(pa,pb);
	printf("s2:a=%d,b=%d\n",a,b);
 
	a=1,b=2;
	swap3(pa,pb);
	printf("s3:a=%d,b=%d\n",a,b);
	
	return 0;
}
void swap1(int x,int y){
	int t;
	t=x;
	x=y;
	y=t;
}
 
void swap2(int *px,int *py){
	int t;
	t=*px;
	*px=*py;
	*py=t;
}
 
void swap3(int *px,int *py){
	int *pt;
	pt=px;
	px=py;
	py=pt;
}

結(jié)果:

第一個swap1函數(shù)運行結(jié)果是:x=2   y=1.但是第一個函數(shù)的形參是(int x,int y),實參是(int a,int b)。因為實參可以影響形參,而形參不可以影響實參。所以a,b的值是不變的。如圖:

             

第二個swap2函數(shù)由圖可知,pa和px都是a的地址,pb和py都是b的地址。此函數(shù)改變*px,*py的值。因為*px和a在同一儲存單元,*py和b在同一儲存單元。以改變實參指針變量所指向的變量的值。所以如圖*pa和*pb的值也改變了,最后輸出結(jié)果也就改變了。

第三個swap3同樣的道理,如上圖直接改變了形參指針px和py的值,改變的只是地址,地址所對應的值沒有改變,又因為形參是不會影響實參,所以pa和pb沒有改變。所以a,b值沒有改變。

到此這篇關(guān)于C語言函數(shù)的參數(shù)使用指針的文章就介紹到這了,更多相關(guān)C語言函數(shù)參數(shù)指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言進階:指針的進階(2)

    C語言進階:指針的進階(2)

    這篇文章主要介紹了C語言指針詳解及用法示例,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下
    2021-09-09
  • C++類與對象深入之運算符重載與const及初始化列表詳解

    C++類與對象深入之運算符重載與const及初始化列表詳解

    運算符是程序中最最常見的操作,例如對于內(nèi)置類型的賦值我們直接使用=賦值即可,因為這些編譯器已經(jīng)幫我們做好了,但是對象的賦值呢?能直接賦值嗎
    2022-06-06
  • 詳解C語言進程同步機制

    詳解C語言進程同步機制

    這篇文章主要介紹了詳解C語言進程同步機制的的相關(guān)資料,文中代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C++使用初始化列表的方式來初始化字段的方法

    C++使用初始化列表的方式來初始化字段的方法

    今天小編就為大家分享一篇關(guān)于C++使用初始化列表的方式來初始化字段的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++動態(tài)規(guī)劃之最長公子序列實例

    C++動態(tài)規(guī)劃之最長公子序列實例

    這篇文章主要介紹了C++動態(tài)規(guī)劃之最長公子序列,實例分析了C++求最長公子序列的相關(guān)技巧,是C++字符串操作的一個典型應用,需要的朋友可以參考下
    2015-04-04
  • c++中map容器的使用詳解

    c++中map容器的使用詳解

    這篇文章主要介紹了c++中map容器的使用詳解,C++中map容器提供一個鍵值對容器,map與multimap差別僅僅在于multiple允許一個鍵對應多個值,需要的朋友可以參考下
    2023-08-08
  • 深入淺出分析C++ string底層原理

    深入淺出分析C++ string底層原理

    C ++的string對象實質(zhì)上就是一個容器,其內(nèi)部有一個c_str方法能夠返回一個指向的實質(zhì)存儲字符串副本的數(shù)據(jù)成員。即通過string::c_str()配合printf函數(shù)可以獲取的字符串副本的內(nèi)存地址
    2021-11-11
  • VC++文件監(jiān)控之FindFirstChangeNotification

    VC++文件監(jiān)控之FindFirstChangeNotification

    因為ReadDirectoryChangesW 上次測試發(fā)現(xiàn)不能多級目錄監(jiān)控,所以嘗試用FindFirstChangeNotification來實施文件監(jiān)控,需要的朋友可以參考下
    2019-04-04
  • c語言中數(shù)組名a和&a詳細介紹

    c語言中數(shù)組名a和&a詳細介紹

    其實這兩個東西挺難理解的,應該也沒有那么重要,了解一下好了,主要還是要多多理解數(shù)組指針的運算
    2013-08-08
  • Linux環(huán)境下段錯誤的產(chǎn)生原因及調(diào)試方法小結(jié)

    Linux環(huán)境下段錯誤的產(chǎn)生原因及調(diào)試方法小結(jié)

    借此機會系統(tǒng)學習了一下,這里對Linux環(huán)境下的段錯誤做個小結(jié),方便以后同類問題的排查與解決
    2011-11-11

最新評論

襄城县| 和政县| 富川| 化州市| 崇义县| 深州市| 彰化县| 浪卡子县| 白沙| 南江县| 高阳县| 谷城县| 昔阳县| 绍兴县| 昭通市| 虞城县| 德钦县| 大港区| 承德县| 博兴县| 大悟县| 玉田县| 包头市| 蒙阴县| 余干县| 封丘县| 武宁县| 沾化县| 确山县| 鄂州市| 绍兴县| 北安市| 迁安市| 贵阳市| 浠水县| 德惠市| 叶城县| 祁东县| 北宁市| 吉木萨尔县| 家居|