数组问题

ArdourCareful 2012-06-13 06:01:51
定义如下数组:
int array[2][3] = {1,2,3,4,5,6};
如何实现输出array[0]的值是1,array[1]的值为2......
...全文
170 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdom_0 2012-07-06
  • 打赏
  • 举报
回复
一维数组 就可以解决。
ArdourCareful 2012-07-06
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
好好看书吧
[/Quote]
推荐一本...
liuyongkanglinux 2012-07-05
  • 打赏
  • 举报
回复
好好看书吧
某大一菜鸟 2012-07-05
  • 打赏
  • 举报
回复
为什么想要干这种事..
4楼提供了一个方法..
ziqingyexue 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
定义如下数组:
int array[2][3] = {1,2,3,4,5,6};
如何实现输出array[0]的值是1,array[1]的值为2......
[/Quote]
把二维数组里面值都循环出来在存储到一位数组里面不就可以了么
赵4老师 2012-06-15
  • 打赏
  • 举报
回复
int array[2][3] = {
{1,2,3},
{4,5,6},
};
Michael Liew 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 7 楼 的回复:
老大您声明的是二维数组怎么能用一个坐标参数确定呢,就像平面上得点你能用一个参数确定么



我看到的代码(没处理部分的代码)是char[][]数组,而引用char[0]的值就是第一个元素char[1]的值就是第二个元素.......
[/Quote]贴出源码来看看
ArdourCareful 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
引用楼主 的回复:
定义如下数组:
int array[2][3] = {1,2,3,4,5,6};
如何实现输出array[0]的值是1,array[1]的值为2......

把二维数组里面值都循环出来在存储到一位数组里面不就可以了么
[/Quote]

就是没处理部分的源码,有的话就不用来讨论了.就只能看到他们定义的一个二维数组,然后用一维数组的形式来引用,注意用的是二维数组的数组名,楼上说到存到一个一维数组中,不就改变数组了吗?
我大致说下实现吧:在一个CPP文件中定义了这个二维数组,二维数组的值是通过读配置文件而获得,然后用一维数组的形式输出.伪代码如下:
typedef struct name
{
.....
char[2][3];它的值是通过读配置文件获得
......
}*LPName;
.......
LPName->char[0]它里面的值是char[0][0]的值
LPName->char[1]它里面的值是char[0][1]的值
大致就是这样
Ganker_Johnny 2012-06-15
  • 打赏
  • 举报
回复
你为啥要除一下呢?我就想不通,直接一个size不就能够得到大小了吗? 还有一种方法就是指针偏移、你懂得,不解释。哥是大神。
kevinyank 2012-06-15
  • 打赏
  • 举报
回复
这可是二维数组啊…lz
wenke311 2012-06-14
  • 打赏
  • 举报
回复
老大您声明的是二维数组怎么能用一个坐标参数确定呢,就像平面上得点你能用一个参数确定么
ArdourCareful 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
void main()
{
int j,m;
int array[2][3]={1,2,3,4,5,6};
int a[6]={0};
for (j=0;j<3;j++)
{
a[j]=array[0][j];
}
m=j;
for (j=0;j<3;j++)
{
a[m+j]=array[1][j];
}
for (j=0;j<6;j++)
{
printf("a……
[/Quote]

这只是效果上的,我要实际的也就是说array[0]就是1 array[1]中就是2.
ArdourCareful 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
老大您声明的是二维数组怎么能用一个坐标参数确定呢,就像平面上得点你能用一个参数确定么
[/Quote]


我看到的代码(没处理部分的代码)是char[][]数组,而引用char[0]的值就是第一个元素char[1]的值就是第二个元素.......
zhuix7788 2012-06-13
  • 打赏
  • 举报
回复
void main()
{
int j,m;
int array[2][3]={1,2,3,4,5,6};
int a[6]={0};
for (j=0;j<3;j++)
{
a[j]=array[0][j];
}
m=j;
for (j=0;j<3;j++)
{
a[m+j]=array[1][j];
}
for (j=0;j<6;j++)
{
printf("array[%d]=%d\n",j+1,a[j]);
}
}
qq120848369 2012-06-13
  • 打赏
  • 举报
回复
[User:root Time:06:22:14 Path:/home/liangdong/c]$ make
gcc -g -I./include -c -o src/main.o src/main.c
gcc -o output src/main.o -lpthread -lm -lz
Makefile done.
[User:root Time:06:22:15 Path:/home/liangdong/c]$ ./output
1 2 3 4 5 6 [User:root Time:06:22:16 Path:/home/liangdong/c]$ cat src/main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[]) {
int arr[2][3] = {1, 2, 3, 4, 5, 6};
int *list = (int*)arr;
int size = sizeof(arr) / sizeof(arr[0][0]);
int i;
for (i = 0; i < size; ++ i) {
printf("%d ", list[i]);
}
return 0;
}
莫名的默默 2012-06-13
  • 打赏
  • 举报
回复
你想实现什么?
qixing1115 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
定义如下数组:
int array[2][3] = {1,2,3,4,5,6};
如何实现输出array[0]的值是1,array[1]的值为2......
[/Quote]
不能实现,回答完毕

array[0]和array[1]都是数据,怎么可能是1和2
不过你可以用一个指针指向array[0],如int *p = array[0];
这样p[0]=1;p[1]=2;p[2]=3;....
hen_hao_ji 2012-06-13
  • 打赏
  • 举报
回复
??
int array[] = {1,2,3,4,5,6};这样就行了吧

64,647

社区成员

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

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