C语言数组初始化问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数组初始化问题。相关的知识,希望对你有一定的参考价值。

这是为毛?

因为C语言中数组的个数是不能用变量来表示的,const int类型作为数组个数是C++的用法。

#include<iostream>
using namespace std;
int main()

    const int num = 10;   //C++风格可以使用const int作为数组个数
    int prime[num] = 2;
    return 0;

这样就可以了。

如果还是用C风格的话也可以这样:

#include<stdio.h>
#define num 10
int main()

    //const int num = 10;  //num是const int型变量
    int prime[num] = 2;  //变量在c语言中不能作为数组个数
    return 0;

参考技术A num虽然是const的,但也是变量,不能用来初始化数组。可以用#define。追问

怎么用?

追答

在主函数外面写“#define num 10”,后面就可以用num初始化了。

参考技术B 数组大小不可以是变量。在定义函数中,数组大小可以是变量。 参考技术C 你把他放在main函数前面试试?我在VC++6.0测试这段代码编译通过了追问

还是不行

追答

你用的什么编译器啊   VC++6.0实测完全没问题,估计是你的编译器不支持const整数做数组的参数?

追问

好像叫C99

追答

我觉得其他人已经解决了你的问题了 我也跟着受益了。以前没留意过这个问题。

C语言数组初始化的问题?为啥我初始化了,数组长度还为0啊,如图

strlen是算字符数组长度的,算其它的数组长度要用sizeof(str)/sizeof(str[0]) 参考技术A strlen 是计算字符串非空长度,你第一个str[0] = 0 会被认为是空字符,直接返回,长度就是0.个人理解。 参考技术B strlen是求字符串长度的
countof是数组的元素个数本回答被提问者和网友采纳
参考技术C 用sizeof

以上是关于C语言数组初始化问题。的主要内容,如果未能解决你的问题,请参考以下文章

关于c语言二维数组列指针初始化

C语言数组的初始化表示方法

C语言中怎么把一维数组初始化都为0,

C语言随机初始化数组

C语言 指针初始化二维数组

C语言如何改变已经初始化的数组的值