真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言指針函數(shù)傳參 c語言 指針傳參

C語言 指針 傳參

問題在你這個函數(shù)的定義參數(shù)void find(float a[],float *pmax,float *pmin)

公司主營業(yè)務:成都網(wǎng)站制作、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出合作免費做網(wǎng)站回饋大家。

你在函數(shù)內對后2個參數(shù)直接進行了賦值。

{pmax=a[t];}

if(a[t]*pmin)

{pmin=a[t];}

你在函數(shù)內賦值并不會被外部的參數(shù)造成影響,你需要把用指針的引用才行

float* pMax, float* pmin

這樣在函數(shù)內的賦值才有效果

c語言中指針傳參

因為數(shù)組的每一個元素在內存中是連續(xù)存放的,只要傳遞數(shù)據(jù)的首地址,你就可以根據(jù)對指針的"++"或--"操作,或直接在首地址上加上某個數(shù),來得到數(shù)據(jù)其他的元素地址,然后用"*"操作符可以訪問對應地址存放的數(shù)值。

比如,有如下這樣語句:

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 定義數(shù)組a

int *p = a; // 使指針p指向數(shù)據(jù)的首地址,類似給函數(shù)傳遞首地址

1、使用"++"操作符,p目前指向的是數(shù)組首地址,那么p++之后,p就應該指向存放數(shù)組第二個元素的地址,這樣就可以用*p得到第二個元素的值(2)。依此類推。

2、可以直接對首地址加某一個數(shù),比如p+4,因為p指向數(shù)組首地址,所以p+4就是指向存放數(shù)據(jù)第五個元素的地址。這樣就可以用*(p+4)得到第五個元素的值(5)。其實這里的*(p+4)與p[4]效果是一樣的,只是寫法上的不同而已,但是p[4]更直觀一些,所以大部分編程人員都愿意用p[4]這種形式,因為它看其來像個數(shù)組,更好理解一些。

總而言之,用數(shù)組首地址可以訪問數(shù)組的所有元素,就是因為可以通過對首地址的相加減來得到其他元素的地址,從而可以得到數(shù)組的每一個元素值。

這樣說,你明白了吧。

如果還不太明白,那就看看譚浩強的《C語言程序設計》的“數(shù)組與指針”篇,那里寫的很詳細的(P210)

在c語言中,指針作為函數(shù)參數(shù),形參只能傳遞值,而不能傳遞地址,是怎么回事?

C語言中,函數(shù)參數(shù)只能傳值。與傳值對應的是傳引用,C語言不支持函數(shù)參數(shù)傳引用,C++語言才支持。

C++傳引用函數(shù):

void foo(int a) { a = 3; }

假如a = 2,執(zhí)行foo(a)后,a = 3。

---

C語言可以模擬傳引用,方法是通過指針來實現(xiàn):

void foo2(int* ap) { *ap = 3; }

假如a = 2,執(zhí)行foo2(a)后,a = 3

foo2(a)調用本質上仍然是傳值,只不過傳遞的是指針,指針即是地址,地址本質上是一個無符號整數(shù)。

如果:

void foo3(int b) { b = 3; }

假如a = 2,執(zhí)行foo3(a)后,a = 2。這是因為foo3(a)調用過程中,a值傳給形參b,修改b的值與實參a無關。

注意到,foo3(a)與上述foo(a)傳引用的調用是形式一樣的。

既然C語言通過指針可以實現(xiàn)傳引用調用,為什么C++還要引入引用這個特性呢?這是因為C++引入的很多新特性需借助引用來實現(xiàn),比如,拷貝構造函數(shù)等等。


新聞標題:c語言指針函數(shù)傳參 c語言 指針傳參
文章位置:http://weahome.cn/article/dodpshc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部