社区
C语言
帖子详情
如何计算数组初始化的个数
hsf1002
2009-12-10 08:53:50
比如 Type arr[6] = {value_0, value_1};
它初始化的个数是2;有什么通用简单的方法知道呢?
...全文
210
30
打赏
收藏
如何计算数组初始化的个数
比如 Type arr[6] = {value_0, value_1}; 它初始化的个数是2;有什么通用简单的方法知道呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuesheng3707
2009-12-11
打赏
举报
回复
[Quote=引用 28 楼 nk_ysg 的回复:]
sizeof
[/Quote]
不可以
hsf1002
2009-12-10
打赏
举报
回复
我就想在编译的时候就可检测到问题
hsf1002
2009-12-10
打赏
举报
回复
[Quote=引用 23 楼 forster 的回复:]
没初始化不一定为0
[/Quote]全局的是 0 吧;
hsf1002
2009-12-10
打赏
举报
回复
[Quote=引用 11 楼 mstlq 的回复:]
全局……
只好循环,判断找“0”了……
万一人家也是初始化为0的,那就悲剧了……
[/Quote]可以确定这个0不会影响到的,比如数组类型是指针,非法值是PNULL(是0),类型是TXT_ID, 非法值是TXT_NULL(非0);
forster
2009-12-10
打赏
举报
回复
没初始化不一定为0
hsf1002
2009-12-10
打赏
举报
回复
[Quote=引用 21 楼 jasion_chen 的回复:]
不知道是基于何种设计的需求要这样做
[/Quote]---------------------------------------
例如:
const static HandleIconFun s_mainmenu_multi_page_func[PAGE_NUM][ICON_NUM] =
{
// first page
{
EnterPB,
EnterSms,
EnterBT,
//
},
// second page
{
EnterCL,
EnterMp3,
//
},
//
//
...
};
const static TXT_ID s_mainmenu_multi_page_text_id[PAGE_NUM][ICON_NUM] =
{
// first page
{
TXT_PB,
TXT_Sms,
TXT_BT,
//
},
// second page
{
TXT_CL,
TXT_Mp3,
//
},
//
//
...
};
为了让上述2个数组每一维数的实际初始化个数一致;这样在编译的时候就可检测到问题,而不至于运行时出现错误;
jasion_chen
2009-12-10
打赏
举报
回复
不知道是基于何种设计的需求要这样做
lovesi3344
2009-12-10
打赏
举报
回复
Type arr[] = {value_0, value_1};
方括号留空,让编译器为你代劳
[Quote=引用楼主 hsf1002 的回复:]
比如 Type arr[6] = {value_0, value_1};
它初始化的个数是2;有什么通用简单的方法知道呢?
[/Quote]
alijun19886666
2009-12-10
打赏
举报
回复
[Quote=引用 2 楼 asdnana 的回复:]
sizeof(arr)/sizeof(arr[0])
[/Quote]
这样计算的是这个数组总共开辟的维数
alijun19886666
2009-12-10
打赏
举报
回复
[Quote=引用楼主 hsf1002 的回复:]
比如 Type arr[6] = {value_0, value_1};
它初始化的个数是2;有什么通用简单的方法知道呢?
[/Quote]
这本身就有矛盾,这样初始化就是默认为数组Type arr后四个变量为0,建议如果这个数组后续要增加维数可以采用动态开放,new和delete,链表操作
猫已经找不回了
2009-12-10
打赏
举报
回复
[Quote=引用楼主 hsf1002 的回复:]
比如 Type arr[6] = {value_0, value_1};
它初始化的个数是2;有什么通用简单的方法知道呢?
[/Quote]
这个只能你自己维护信息了,没道理C++可以聪明到这种地步。
a1330575
2009-12-10
打赏
举报
回复
[Quote=引用 5 楼 hsf1002 的回复:]
引用 3 楼 sxsong_04 的回复:
用循环吧,找非默认值的个数
在做项目的时候就是用循环,但是我觉得这样不好,如果数组类型改变就得重写;
[/Quote]
再把数组对应的数组默认值传进去不就行了啊
z569362161
2009-12-10
打赏
举报
回复
最好是用什么自己先知道
苍蝇①号
2009-12-10
打赏
举报
回复
无解。
可能你需要的是一个线性表
LPR_Pro
2009-12-10
打赏
举报
回复
无解
im_ym
2009-12-10
打赏
举报
回复
这个只能定些默认的规则了,根据规则判断初始化的个数~~~
mstlq
2009-12-10
打赏
举报
回复
全局……
只好循环,判断找“0”了……
万一人家也是初始化为0的,那就悲剧了……
neu_gis
2009-12-10
打赏
举报
回复
规范一点的话,应该是全部初始化
hsf1002
2009-12-10
打赏
举报
回复
[Quote=引用 4 楼 donntknow 的回复:]
1,一般编码规范都会要求,对数组要在声明时全部初始化。
2,c中,未初始化的数组里面存的是什么值无法知道,因此没有什么方法可以判断哪些初始化了,哪些没有初始化。
[/Quote]呵呵,有道理,我很确定只有定义全局数组时才有这个知道数组初始化个数的需求,所以未初始化的值是确定的了;
hsf1002
2009-12-10
打赏
举报
回复
[Quote=引用 2 楼 asdnana 的回复:]
sizeof(arr)/sizeof(arr[0])
[/Quote]这个肯定不对啦;
加载更多回复(10)
C语言系列课程
序号内容详情内容第1讲关于《C语言》主要阐述为什么录制这个系列的视频第2讲C语言基础知识C语言特征、C语言字符集、词汇第3讲C语言输入/输出scanf、printf、getchar、putchar第4讲C语言数据类型数据类型、常量、变量第5讲C语言运算符算术运算符、关系运算符、逻辑运算符等第6讲if语句if…else、else if等第7讲switch语句switch、break、default等第8讲while语句while、do…while第9讲for语句for语句原理、实例第10讲continue与breakcontinue与break区别第11讲
数组
(一)
数组
类型、
数组
定义、
数组
初始化
、
数组
引用第12讲
数组
(二)二分法查找第13讲
数组
(三)冒泡算法第14讲字符
数组
字符
数组
定义、
初始化
、引用、字符串常用函数第15讲多维
数组
多维数据定义、
初始化
、引用第16讲函数(一)函数定义、函数调用、函数返回值、函数声明第17讲函数(二)函数参数传递方式第18讲指针与变量关系变量、指针第19讲指针与
数组
关系
数组
指针、
数组
指针引用第20讲指针与函数函数指针、函数指针参数传递
c语言定义
数组
变量
初始化
为0,C语言
数组
初始化
C语言
数组
初始化
教程C语言
数组
初始化
一语法type arrName[count] = {val1, val2, val3, ....};参数参数描述type
数组
中每一个元素的数据类型。arrName
数组
的变量名。count
数组
能存储的元素的
个数
。val给
数组
初始化
的值。说明我们还可以在 {} 写上一系列的值,用来
初始化
数组
的值。C语言
数组
初始化
二语法#include type arrName[co...
C++中
数组
初始化
方法
定义: int *pia = new int[10]; // array of 10 uninitialized ints 此new表达式分配了一个含有 10 个int型元素的
数组
,并返回指向该
数组
第一个元素的指针,此返回值
初始化
了指针pia。 在自由存储区中创建的
数组
对象是没有名字的,只能通过其地址间接地访问堆中的对象。 注意:C++使用new和delete在堆(自由存储区)上分配和释放动态
数组
。 动态
数组
初始化
: 1. 元素只能
初始化
为元素类型的默认值,而不能像
数组
变量一...
c++中
数组
初始化
方法
1: 一维
数组
初始化
:2: 标准方式一: int value[100];// value[i]的值不定,没有
初始化
3: 标准方式二: int value[100] = {1,2};// value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]4: // 则
初始化
为05: 指针方式: int* value = new int[n];// 未
初始化
// 一定不能忘了删除
数组
空间7:8: 二维
数组
初始化
:9: 标准方式一: int value[9][9];
一维
数组
初始化
所谓变量
初始化
,就是在定义变量的时候,给其赋值一个初始值。那么,
数组
初始化
,就是在定义
数组
的时候,给其赋值初始值。
数组
初始化
的格式如下: 数据类型
数组
名 [常量值] = {值1, 值2, ..., 值N}; 此时,在定义
数组
的时候,指定了
数组
的长度,然后,给
数组
赋值。例如: intarray[3] = {100, 200, 300}; 就相当于: array[0] = 100; array[1] = 200; array[2] = 300; 程序测试例子如下: 程序运行...
C语言
69,377
社区成员
243,076
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章