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

C++的函數(shù)與指針

 更新時(shí)間:2021年10月29日 09:59:06   作者:uncle_ll  
今天小編就為大家分享一篇關(guān)于C++函數(shù)與指針的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

函數(shù)與指針

一個(gè)函數(shù)在編譯時(shí)被分配一個(gè)入口地址,這個(gè)入口地址就稱為函數(shù)的指針。在C++中, 函數(shù)名代表函數(shù)的入口地址。

  • 指針作函數(shù)的參數(shù)-實(shí)現(xiàn)地址傳遞
  • 返回指針的函數(shù)
  • 利用指向函數(shù)的指針調(diào)用函數(shù)

指針作函數(shù)的參數(shù)-實(shí)現(xiàn)地址傳遞

指針作函數(shù)的參數(shù),具有以下用途:

  • 指針作函數(shù)參數(shù),這時(shí)形參接受的是實(shí)參的地址。函數(shù)中通過(guò)對(duì)指針的間接訪問(wèn)實(shí)現(xiàn)參數(shù)的按“引用傳遞”功能
  • 設(shè)置多個(gè)指針參數(shù)可從函數(shù)中帶回多個(gè)結(jié)果值
  • 對(duì)于傳遞一塊連續(xù)的內(nèi)存區(qū)域數(shù)據(jù),傳遞首地址比傳遞數(shù)

據(jù)值不僅開(kāi)銷小而且效率高

例如:

編寫(xiě)交換兩個(gè)變量值的函數(shù)(地址傳遞)

相當(dāng)于改變兩個(gè)指針指向的變量?jī)?nèi)容。

void swap(int *px, *py)
{
	int t;
	t = *px;
	*px = *py;
	*py = t;
}
int main()
{
	int x=2, y=3;
	cout<<"調(diào)用前:x="<<x<<",y="<<y<<endl;
	swap(&x, &y);
	cout<<"調(diào)用后:x="<<x<<",y="<<y<<endl;
	return 0;
}

/*
輸出:
調(diào)用前:x=2, y=3
調(diào)用后:x=3, y=2
*/

在這里插入圖片描述

例如:

利用指針參數(shù)帶回函數(shù)中的多個(gè)值

計(jì)算一維數(shù)組元素的平均值,并能帶回?cái)?shù)組中的最大值與最小值

函數(shù)原型設(shè)計(jì)如下:

double faver(int s[], int n, int *max, int *min);
其中:
s-一維數(shù)組
n-數(shù)組中元素個(gè)數(shù)
max-指向最大值
min-指向最小值
將平均值作為函數(shù)的返回值

double faver(int s[],int n,int *max,int *min)
{
	double aver=s[0];
	*max= *min =s[0];
	for(int i=1;i<n;i++)
	{ aver+=s[i];
	if(s[i]>*max)*max=s[i];
	if(s[i]<*min)*min=s[i];
	}
	return aver/n;
}
int main()
{
int a[5]={80,89,67,76,98}, max, min;
double aver;
aver=faver(a,5,&max,&min); //調(diào)用函數(shù)
cout<<"max="<<max<<"\n"<<"min="<<min<<endl;
cout<<"aver="<<aver<<endl;
return 0;
}
/*
max=98
min=67
aver=82
*/

返回指針的函數(shù)

返回指針的函數(shù)定義格式如下

類型 * 函數(shù)名(形式參數(shù)表)
{
   語(yǔ)句序列
}

其中:

類型 * 為函數(shù)的返回值類型,是一個(gè)指針類型

例子

編寫(xiě)函數(shù),返回字符串中首次出現(xiàn)的非空格字符開(kāi)始的字符串

如:" using namespace std;" 返回"using namespace std;"

char * noblank(char * str)
{
	while(*str == ' ')
		str++;
	return str;
}
int main()
{
	char *s1 = "    using namespace std;", *s2;
	s2 = noblank(s1);
	cout << s2 << endl;
	return 0;
}

指向函數(shù)的指針變量

使用指向函數(shù)的指針變量可以存放函數(shù)的指針

指向函數(shù)的指針變量定義格式如下:

函數(shù)返回值類型 ( * 指針變量名 ) (形參類型表列);

注意,中間的括號(hào)不能省略

例如:

定義指向double型函數(shù)的指針變量,該函數(shù)有一個(gè)double型參數(shù)

double (*pf)( double );
pf=sqrt; //pf 指向一個(gè)平方根函數(shù)

時(shí),使用*pf可以調(diào)用該函數(shù)。

cout<<(*pf)(2.0)<<endl; //輸出根號(hào)2的值
與 cout<<sqrt(2.0)<<endl; 表示式是等價(jià)的

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++驅(qū)動(dòng)bash的實(shí)現(xiàn)代碼

    C++驅(qū)動(dòng)bash的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C++驅(qū)動(dòng)bash的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • C++中關(guān)于set刪除的一些坑

    C++中關(guān)于set刪除的一些坑

    這篇文章主要介紹了C++中關(guān)于set刪除的一些坑,因?yàn)檫@個(gè)問(wèn)題浪費(fèi)了很多的時(shí)間,所以想著分享出來(lái)給大家,方便同樣遇到這個(gè)問(wèn)題的朋友們,有需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • C語(yǔ)言左旋轉(zhuǎn)字符串與翻轉(zhuǎn)字符串中單詞順序的方法

    C語(yǔ)言左旋轉(zhuǎn)字符串與翻轉(zhuǎn)字符串中單詞順序的方法

    這篇文章主要介紹了C語(yǔ)言左旋轉(zhuǎn)字符串與翻轉(zhuǎn)字符串中單詞順序的方法,給出了相關(guān)的兩道算法題目作為例子,需要的朋友可以參考下
    2016-02-02
  • C語(yǔ)言sizeof和strlen區(qū)別小結(jié)

    C語(yǔ)言sizeof和strlen區(qū)別小結(jié)

    C語(yǔ)言中的sizeof和strlen是兩個(gè)常用的操作符/函數(shù),但它們的功能和用途有很大的區(qū)別,本文就詳細(xì)的來(lái)介紹一下C語(yǔ)言sizeof和strlen區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • C++ 實(shí)現(xiàn)一個(gè)復(fù)數(shù)類的實(shí)例代碼

    C++ 實(shí)現(xiàn)一個(gè)復(fù)數(shù)類的實(shí)例代碼

    這篇文章主要介紹了C++ 實(shí)現(xiàn)一個(gè)復(fù)數(shù)類的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • C++?std::chrono庫(kù)使用示例(實(shí)現(xiàn)C++?獲取日期,時(shí)間戳,計(jì)時(shí)等功能)

    C++?std::chrono庫(kù)使用示例(實(shí)現(xiàn)C++?獲取日期,時(shí)間戳,計(jì)時(shí)等功能)

    std::chrono是C++標(biāo)準(zhǔn)庫(kù)中的一個(gè)組件,用于表示和處理時(shí)間,這篇文章主要介紹了C++?std::chrono庫(kù)使用指南(實(shí)現(xiàn)C++?獲取日期,時(shí)間戳,計(jì)時(shí)等功能),需要的朋友可以參考下
    2023-06-06
  • C語(yǔ)言實(shí)現(xiàn)學(xué)生個(gè)人消費(fèi)管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)學(xué)生個(gè)人消費(fèi)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生個(gè)人消費(fèi)管理系統(tǒng)開(kāi)發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 關(guān)于Qt?C++中connect的幾種寫(xiě)法代碼示例

    關(guān)于Qt?C++中connect的幾種寫(xiě)法代碼示例

    這篇文章介紹了Qt中connect函數(shù)的不同編寫(xiě)方式,包括傳統(tǒng)的槽函數(shù)寫(xiě)法、使用函數(shù)指針的寫(xiě)法、Lambda表達(dá)式以及使用QOverload選擇重載信號(hào)的寫(xiě)法,每種寫(xiě)法都有其特點(diǎn)和適用場(chǎng)景,程序員應(yīng)根據(jù)具體需求選擇最合適的方式,需要的朋友可以參考下
    2024-11-11
  • Qt示例教程之用Qt畫(huà)一個(gè)溫度計(jì)

    Qt示例教程之用Qt畫(huà)一個(gè)溫度計(jì)

    在Qt繪圖中經(jīng)常需要繪制一些儀表的刻度盤(pán),比如溫度計(jì),下面這篇文章主要給大家介紹了關(guān)于用Qt畫(huà)一個(gè)溫度計(jì)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 使用用C++做一顆會(huì)跳動(dòng)的愛(ài)心實(shí)例代碼

    使用用C++做一顆會(huì)跳動(dòng)的愛(ài)心實(shí)例代碼

    大家好,本篇文章主要講的是使用用C++做一顆會(huì)跳動(dòng)的愛(ài)心實(shí)例代碼,感興趣的同學(xué)趕快來(lái)看一看吧,歡迎借鑒學(xué)習(xí)C++做一顆會(huì)跳動(dòng)的愛(ài)心實(shí)例代碼
    2021-12-12

最新評(píng)論

马公市| 鄯善县| 额尔古纳市| 昔阳县| 尚志市| 郯城县| 枣强县| 靖江市| 揭阳市| 昌黎县| 富川| 积石山| 中卫市| 鄂托克旗| 玉溪市| 梁山县| 田阳县| 清水河县| 南乐县| 鸡西市| 达孜县| 鄂托克旗| 海宁市| 乡宁县| 洞口县| 敦煌市| 尚志市| 大同市| 江源县| 长沙市| 儋州市| 德兴市| 龙川县| 小金县| 叶城县| 西吉县| 民乐县| 万山特区| 砚山县| 通辽市| 峨山|