关于 C 语言二维数组引用的问题
一维数组能用指针引用,二维数组不能用指针引用吗?比如我在main函数中这样写:inta[10];intb[5][10];int*x=a;int**y=b;编译器编译到in...
一维数组能用指针引用,二维数组不能用指针引用吗?
比如我在 main 函数中这样写:
int a[10];
int b[5][10];
int *x=a;
int **y=b;
编译器编译到 int **y=b 的时候就提示出错,说不能将二维数组类型(int [][])转化成指向指针的指针类型(int **)。
我也试了强制类型转化,就是把 int **y=b; 写成 int **y=(int **)b; 这下编译器检查不出错误了,但是运行时提示引用错误的内存。究竟问题出在哪里?
(假设两个数组都已经初始化过)
若应该写为 int *y=b; 的话,那么如何引用二维数组 b 中的元素呢?如引用 b[1][1] 也一样写 y[1][1] 吗? 展开
比如我在 main 函数中这样写:
int a[10];
int b[5][10];
int *x=a;
int **y=b;
编译器编译到 int **y=b 的时候就提示出错,说不能将二维数组类型(int [][])转化成指向指针的指针类型(int **)。
我也试了强制类型转化,就是把 int **y=b; 写成 int **y=(int **)b; 这下编译器检查不出错误了,但是运行时提示引用错误的内存。究竟问题出在哪里?
(假设两个数组都已经初始化过)
若应该写为 int *y=b; 的话,那么如何引用二维数组 b 中的元素呢?如引用 b[1][1] 也一样写 y[1][1] 吗? 展开
展开全部
直接 int *y=b; 那就运算指针位置啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这边编译运行都没问题啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询