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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將多維數(shù)組傳遞給C和C ++中的函數(shù)

如何將多維數(shù)組傳遞給C和C ++中的函數(shù)

C++ C
HUX布斯 2019-08-27 17:44:25
如何將多維數(shù)組傳遞給C和C ++中的函數(shù)#include<stdio.h>void print(int *arr[], int s1, int s2) {     int i, j;     for(i = 0; i<s1; i++)         for(j = 0; j<s2; j++)             printf("%d, ", *((arr+i)+j));}int main() {     int a[4][4] = {{0}};     print(a,4,4);}這適用于C,但不適用于C ++。錯誤:cannot convert `int (*)[4]' to `int**' for argument `1' to  `void print(int**, int, int)'為什么它在C ++中不起作用?需要做出哪些改變?
查看完整描述

3 回答

?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

#include<stdio.h>void print(int arr[][4], int s1, int s2) {
    int i, j;
    printf("\n");
    for(i = 0; i<s1; i++) {
        for(j = 0; j<s2; j++) {
            printf("%d, ", *((arr+i)+j));
        }
    }
    printf("\n");}int main() {
    int a[4][4] = {{0}};
    print(a,4,4);}

這將工作,我的工作意味著編譯。@AndreyT解釋了為什么你的版本不能正常工作。

這是你應該傳遞二維數(shù)組的方法。

為清楚起見,您還可以在函數(shù)聲明中指定兩個大小:

#include<stdio.h>void print(int arr[4][4], int s1, int s2) {
    int i, j;
    printf("\n");
    for(i = 0; i<s1; i++) {
        for(j = 0; j<s2; j++) {
            printf("%d, ", *((arr+i)+j));
        }
    }
    printf("\n");}int main() {
    int a[4][4] = {{0}};
    print(a,4,4);}

兩者都有效。

您還應該更改*((arr+i)+j)a[i][j](最好)或者*(*(arr+i)+j)如果您打算訪問j行的第th個元素i。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 550 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號