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

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

c++ 二維數(shù)組在子函數(shù)里的引用

c++ 二維數(shù)組在子函數(shù)里的引用

C++
米脂 2018-10-29 09:09:57
如題,下面是某個(gè)錯(cuò)誤程序的簡(jiǎn)化,請(qǐng)問為什么在change2(map)那里報(bào)錯(cuò)了;vs里說:error C2664: “change2”: 不能將參數(shù) 1 從“int [][10]”轉(zhuǎn)換為“int (&)[10][10]” #include<iostream> using namespace std; void change2(int (&map)[10][10]){     return; } void change1(int map[10][10]){     change2(map);     return; } int main(){     int map[10][10];     change1(map);     return 0; }And為什么在change1里面map的類型變成int (*map)[10]了?
查看完整描述

2 回答

?
哆啦的時(shí)光機(jī)

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

數(shù)組,在函數(shù)里作為參數(shù)會(huì)退化為指針,所以變成

  int * map[10];

這里不需要引用

#include <iostream>
using namespace std;


void change2(int map[10][10]){
    map[1][1] = 234;
    return;
}

int main(){
    int map[10][10];
    map[1][1] = 123;
    cout << map[1][1] << endl;
    change2(map);
    cout << map[1][1] << endl;
    return 0;
}

change2可以改變數(shù)組。因?yàn)槭前凑盏刂穫鬟f的。


查看完整回答
反對(duì) 回復(fù) 2018-11-03
?
滄海一幻覺

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

拋開這道題來說,假設(shè)你來設(shè)計(jì)函數(shù)的機(jī)制,函數(shù)形參為一個(gè)數(shù)組,如果固定了這個(gè)數(shù)組的長(zhǎng)度,就會(huì)導(dǎo)致函數(shù)適用性變差,對(duì)吧,所以,實(shí)際上在定義形參的時(shí)候,數(shù)組的最高維度可以不寫,比如你的int map[10][10],實(shí)際上只是map[][10],也就是你說的( * map)[10],

對(duì)于報(bào)錯(cuò),你是想用引用嗎?數(shù)組不需要引用,可以直接修改,因?yàn)閷?shí)參傳進(jìn)去的實(shí)際是地址,地址并沒有改變


查看完整回答
反對(duì) 回復(fù) 2018-11-03
  • 2 回答
  • 0 關(guān)注
  • 1780 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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