第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)函數(shù)具有特定大小的數(shù)組參數(shù)時(shí),為什么要用指針替換它?

當(dāng)函數(shù)具有特定大小的數(shù)組參數(shù)時(shí),為什么要用指針替換它?

C++ C
心有法竹 2019-06-01 15:52:53
當(dāng)函數(shù)具有特定大小的數(shù)組參數(shù)時(shí),為什么要用指針替換它?根據(jù)下面的程序,#include <iostream>using namespace std;void foo( char a[100] ){     cout << "foo() " << sizeof( a ) << endl;}int main(){     char bar[100] = { 0 };     cout << "main() " << sizeof( bar ) << endl;     foo( bar );     return 0;}產(chǎn)出main() 100foo() 4為什么數(shù)組作為指向第一個(gè)元素的指針傳遞?這是C的遺產(chǎn)嗎?標(biāo)準(zhǔn)怎么說(shuō)?為什么C+的嚴(yán)格類型安全性下降了?
查看完整描述

3 回答

?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

是。在C和C+中,不能將數(shù)組傳遞給函數(shù)。事情就是這樣。

你為什么要做普通數(shù)組?你有沒(méi)有看過(guò)boost/std::tr1::array/std::arraystd::vector?

注意,您可以將對(duì)任意長(zhǎng)度數(shù)組的引用傳遞給函數(shù)。模板..從我的頭頂上:

template< std::size_t N >void f(char (&arr)[N]){
  std::cout << sizeof(arr) << '\n';}


查看完整回答
反對(duì) 回復(fù) 2019-06-01
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

在C/C+術(shù)語(yǔ)中有一個(gè)很棒的詞,用于靜態(tài)數(shù)組和函數(shù)指針-衰變..考慮以下代碼:


int intArray[] = {1, 3, 5, 7, 11}; // static array of 5 ints

//...

void f(int a[]) {

  // ...

}

// ...

f(intArray); // only pointer to the first array element is passed

int length = sizeof intArray/sizeof(int); // calculate intArray elements quantity (equals 5)

int ptrToIntSize = sizeof(*intArray); // calculate int * size on your system


查看完整回答
反對(duì) 回復(fù) 2019-06-01
  • 3 回答
  • 0 關(guān)注
  • 787 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)