当前位置:  开发笔记 > 编程语言 > 正文

如何在C中找到多维数组的维数

如何解决《如何在C中找到多维数组的维数》经验,为你挑选了1个好方法。

我宣布了一个像这样的二维数组:

char *array[][3] = {
    {"a", "b", "c"},
    {"d", "e", "f"},
    {"u", "v", "w"},
    {"x", "y", "z"}};

我如何找到第一个维度?



1> DigitalRoss..:

sizeof array/sizeof数组[0]

示例:*

#include 

int main(void) {
  int array[4];

    printf("%zd\n", sizeof array / sizeof array[0]);
    printf("%zd\n", sizeof (int));
    printf("%ld\n", (long)(sizeof array / sizeof array[0]));
    return 0;
}


*如果操作数是a type-name,则需要parens ,即使sizeof操作符不是函数.但是每个type-name出现在C语法中的地方(声明者都没有使用那个作品)那么就需要在它周围使用parens.因为没有一个类型名称中,括号中使用的各种C语言规格的半正式语法一个独立的生产,他们指定定义的东西,如生产所需的括号sizeof,generic-associationscast-expressions.但是那些parens确实存在,以便能够解析表达式语法中的类型.它们是你可能称之为"类型表达式"的语法的一部分,但考虑到这些东西的使用有限,它们实际上并没有任何这样的产生或术语.


围绕"sizeof"操作数的parens对于表达式来说是不必要的(在这种情况下,parens只是表达式的更多).但是,如果sizeof运算符的操作数是一个类型,则它们是必需的.
另外 - 即使使用表达式作为`sizeof`的操作数,我也非常喜欢parens,因为那时我不必担心记住sizeof运算符的优先级.我很难记住"加法和减法之前的乘法和除法".
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有