int *arr[4];和int (*arr)[4];有什么区别呀?

aa1013911535 2010-11-22 12:32:09
还有为什么这样创建数组不成立:

C/C++code:
#include <iostream.h>
void main()
{
int (*arr)[3];
int size;
size =4;
arr=new int [3][4]; // error C2440: '=' : cannot convert from 'int (*)[4]' to 'int (*)[3]'
for (int k=0;k<3;k++)
for(int j=0;j<4;j++)
cin>>arr[k][j];
for(k=0;k<3;k++)
{
for(int j=0;j<4;j++)
cout<<arr[k][j]<<" ";
cout<<endl;
}
delete []arr;
}
...全文
1842 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2010-11-22
  • 打赏
  • 举报
回复
arr=new int [3][4]; cannot convert from 'int (*)[4]' to 'int (*)[3]'

你的arr指向有3个元素的数组,你这里却申请的时候却变成有4个元素的数组,当然是不行的.
改成:
arr=new int [3][3];


或者定义的时候写成arr=(int*)[4];
KID_coder 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 csuxiaowu 的回复:]
有括号的 表示一个指针 它指向了 有 多少个 元素的 某种类型的数组
没括号的 表示一个数组 它里面存放了 多少个 某种类型的 指针
[/Quote]

#include <iostream.h>
void main()
{
int (*arr)[3];
int size;
size =4;
arr=new int [4][3]; // 这样
for (int k=0;k<3;k++)
for(int j=0;j<4;j++)
cin>>arr[k][j];
for(k=0;k<3;k++)
{
for(int j=0;j<4;j++)
cout<<arr[k][j]<<" ";
cout<<endl;
}
delete []arr;
}
flower_fancy 2010-11-22
  • 打赏
  • 举报
回复
int (*arr)[3]; 你这里定义的数组指针是指向含有3个元素的数组,而arr=new int [3][4]; 这里定义的arr数组指针确实指向含有4个元素的数组,定义不相同,无法转换。。。
PxiaP 2010-11-22
  • 打赏
  • 举报
回复
int *arr[4];是一个一维数组,数组的每一项都是一个指向int的指针
int (*arr)[4];是一个二位数组的首地址,相当于int arr[n][4]中的arr
flower_fancy 2010-11-22
  • 打赏
  • 举报
回复
int*arr[4]是指针数组,是4个指针组成一个数组,而int(*arr)[4]是数组指针,指向有4个数组组成的数组。。。
lsupper 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wyfwx 的回复:]

指针数组 数组指针
[/Quote]
+1
wyfwx 2010-11-22
  • 打赏
  • 举报
回复
指针数组 数组指针
Csuxiaowu 2010-11-22
  • 打赏
  • 举报
回复
有括号的 表示一个指针 它指向了 有 多少个 元素的 某种类型的数组
没括号的 表示一个数组 它里面存放了 多少个 某种类型的 指针
lizhengjun2010 2010-11-22
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
int (*arr)[3]; //这样定义数组 默认的是 行数任意 而列数为3
int size;
size =4;
arr=new int [3][4]; // 所以这里的4列就出错啦
for (int k=0;k<3;k++)
for(int j=0;j<4;j++)
cin>>arr[k][j];
for(k=0;k<3;k++)
{
for(int j=0;j<4;j++)
cout<<arr[k][j]<<" ";
cout<<endl;
}
delete []arr;
}

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧