ppt中有一页是错误的

林老师,4.13_多维数组与指针,ppt中的描述是对的,但是这个代码是错的。就是“ int *ptr2 = array;”提示是:=14pt[Error] C:\Users\hbyd\Documents\C-Free\Temp\未命名4.cpp:24: error: cannot convert `int (*)[3]' to `int*' in initialization,但是ppt中描述是对的,大致是说我们不能简单的使用一个指针来指向一 个二维数组
#include <stdio.h> 
void fun(int (*ptr)[3]){
    int i, j;
    for (i = 0; i < 3; i++){
        for (j = 0; j < 3; j++){
            ptr[i][j] = 10;
        }
    }

void fun2(int ptr[]){
    int i, j;
    for (i = 0; i < 3; i++){
        for (j = 0; j < 3; j++){
            ptr[i*3+j] = 99;
        }
    }

int main(){
    int array[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int (*ptr)[3] = array;
    int *ptr2 = array;
    int i, j;
    printf("array:\n");
    for (i = 0; i < 3; i++){
        for (j = 0; j < 3; j++){
            printf("[%d %d]", ptr[i][j], ptr2[i * 3 + j]);
        }
        printf("\n");
    }
    fun(array);
    printf("array:\n");
    for (i = 0; i < 3; i++){
        for (j = 0; j < 3; j++){
            printf("%d ", ptr[i][j]);
        }
        printf("\n");
    }
    fun2(array);
    printf("array:\n");
    for (i = 0; i < 3; i++){
        for (j = 0; j < 3; j++){
            printf("%d ", ptr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
 

小象老师

赞同来自:

请问你下载的是第几课的课件并确定下载的是最新的吗?

要回复问题请先登录注册