| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 300 人关注过本帖
标题:二维数组的一个小问题
只看楼主 加入收藏
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
结帖率:25%
收藏
 问题点数:0 回复次数:5 
二维数组的一个小问题
int arr[2][3]={(5, 6, 7), (1, 2, 3)};

如果里面是小括号形式的话,表示什么意思?
2015-03-17 17:17
resign
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-3-13
收藏
得分:0 
回复 楼主 msl12
二维数组可以看成一个2行3李的矩阵,一个小括号相当与第一行的3个元素
2015-03-17 19:22
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
我从没在哪本C的教材上看到过小括号定义二维数组
不知道楼主的代码是怎么通过编译器的


程序代码:
#include <stdio.h>

int a[2][3] = {{5, 6, 7}, {1, 2, 3}};

int main(int argc, char *argv[]) {
    for(int i = 0; i < 2; i++) {
        for(int j = 0; j < 3; j++) {
            printf("%d ", a[i][j]);
        }
    }

    puts("");

    int *p1 = &a[0][0];

    for(int i = 0; i < 6; i++)
        printf("%d ", *p1++);

    puts("");

    int *p2[2];

    for(int i = 0; i < 2; i++) {
        *(p2 + i) = a[i];

        for(int j = 0; j < 3; j++) {
            printf("%d ", *(*(p2 + i) + j));
        }
    }

    puts("");

    int (*p3)[3];

    for(int i = 0; i < 2; i++) {
        p3 = a + i;

        for(int j = 0; j < 3; j++) {
            printf("%d ", *(*p3 + j));
        }
    }

    puts("");
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-17 20:08
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
小括号的话,代表的是逗号表达式, 这样你就只定义了其中的前两个元素,后面的元素系统默认以填充, 这个可以自己输出一下数组元素的值来试验一下.

代码测试环境:  WinXP+C-Free5.0.
2015-03-17 20:14
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 4楼 vvvcuu
谢谢楼上,又学习了一种新技能了,
不过我实在不理解这种定义方式……
纯粹是无用功的感觉!

Only the Code Tells the Truth             K.I.S.S
2015-03-17 20:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
大陸課程最常見這種操練題目,考試也是靠這種拿的文憑,你看那些考卷上有幾道題不是這種貨色?正如孔乙己認識“茴”字有四個寫法一樣,老學究考倒你了。

[ 本帖最后由 TonyDeng 于 2015-3-17 20:29 编辑 ]

授人以渔,不授人以鱼。
2015-03-17 20:27
快速回复:二维数组的一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012330 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved