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语言数组初始化问题。的主要内容,如果未能解决你的问题,请参考以下文章