标题:typedef char ElemType[N]的理解问题。
只看楼主
YoleBooM
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-8-25
结帖率:0
 问题点数:0 回复次数:2 
typedef char ElemType[N]的理解问题。
程序代码:
#define N 6
#define MAX_SIZE 100
typedef char ElemType[N]

typedef struct
{
     ElemType data;
     int cur;
}SLinkList[MAN_SIZE];

int main(void)
{
    SLinkList s = {"BCCN",1};
    printf(" %s ", s[0].data )
    return 0;
}

/*

 我现在不理解,ElemType[N]是char型,那么ElemType是不是就是数组地址呀,在定义结构体变量ElemType data的时候,应该怎么理解?因为没加[N],那data是什么?
*/N
搜索更多相关主题的帖子: int define typedef char data 
2021-08-30 21:49
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
得分:0 
等于一个没有初始化的数组char data[N], 等于一个char*指针, 这样定义没有什么意义的, 依然不能进行类型判断,
应该定义为一个结构
typedef struct { char data; } ElemType[N];


[此贴子已经被作者于2021-8-30 23:49编辑过]

2021-08-30 23:32
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
得分:0 
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>

#define M 6
#define N 32
#define MAX_SIZE 100

typedef char ElemType[N];

typedef struct
{
     ElemType data[M];
     int cur;
}SLinkList[MAX_SIZE];

int main(int argc, char *argv[])
{
    SLinkList s = {{"BCCN", "c language yyds", 
                    "baobao zhen ke ai!"}, 1};
    
    puts((&s[0])->data[0]);
    puts((&s[0])->data[1]);
    puts((&s[0])->data[2]);
    
    return 0;
}
2021-08-31 07:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
typedef char ElemType[N];

typedef struct
{
     ElemType data;
     int cur;
}SLinkList[MAX_SIZE];
其完全等同于
typedef struct
{
    char data[N];
    int cur;
} SLinkList[MAX_SIZE];
2021-08-31 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506709-1-1.html




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

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