【问题标题】:Declaration of char arraychar数组的声明
【发布时间】:2015-04-27 14:51:42
【问题描述】:

我看过一个程序,在头文件中声明如下

typedef char CHAR10[10];

在下面的程序中

CHAR10  szReading;

上面的声明和

一样吗
char szReading[10];

我对这些很困惑。有人能解释一下它到底是什么吗?

【问题讨论】:

  • 从阅读一本好的 C 书籍开始。

标签: c arrays char


【解决方案1】:

是的,你理解正确。有关详细信息,请参阅this answer

当您说CHAR10 与固定长度的字符数组相同,然后说CHAR10 test,那么test 肯定是您想要长度的字符数组(在您的示例中为 10) .


typedef 用法示例

typedef unsigned int uint;
uint K; // K is an unsigned int

typedef char *SortOfString;
SortOfString test; // test is a pointer to char

【讨论】:

    【解决方案2】:

    是的,你的解释是正确的。

    【讨论】:

    • 如果我想声明双数组,我可以这样做CHAR10 szReading[5] 对吗?
    • 是的。这相当于char szReading[5][10]。不过,我不确定这是否是您所说的“双数组”。恕我直言,最好不要以这种方式使用typedef 隐藏重要信息。
    • @是的,我是说二维数组,谢谢
    • @Aravind:你需要小心“double”这个词。这:double arr[5]; 是一个 double 数组。
    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2016-09-26
    相关资源
    最近更新 更多