问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC知识库:在C++中怎么判断数组为空

发布网友 发布时间:2022-04-17 19:01

我来回答

1个回答

热心网友 时间:2022-04-17 20:30

这无法确认,除非用户自己规定了记号,当数组里有规定的记号时就认为空了,比如空字符串就是字符数组的第一个元素为'\0'的字符串。一般情况下是这样处理的:当数组里的数据已经失去存在的意义时,就认为它空了,可以用新的数据来覆盖了——根本没有“清空”的必要,也不可能真正清空,任何符号在数组里其实都是“数据”。所以数据只有有效与无效之别,没有有数与无数之分。有时候,希望数组里一开始或在运行中的某个时刻成为全0或其他符号,那实际上就是后续代码需要的数据,并不是“清空”的意思。对于静态声明的数组,可以这么做:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int a[10]={1,2,3,4,5,6,7,8,9,10},i,f=1<<sizeof(int)*8-1;//用最小的int数做空标记
for(i=0;i<10;printf("%3d",a[i++]));//数组a中的数据使用完毕
printf("\n");
a[0]=f;//认为a数组空了
if(a[0]==f)//检测到a中数组无效了,就可重新输入数据
for(i=0;i<10;scanf("%d",a+i++));
printf("\n");
return 0;
}
果是动态申请的数组,那就更好办了,数组的数据失效后,用free释放空间并使指针为NULL即可,需要时重新动态申请。如:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
int *p,i;
p=(int *)malloc(sizeof(int)*10);//动态申请数组空间
for(i=0;i<10;scanf("%d",p+i++));//输入数据
for(i=0;i<10;printf("%d ",p[i++]));//数据使用完毕
free(p);//释放空间
p=NULL;//使指针无效
printf("\n");
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 工行手机银行密码输入正确为什么老提示错误呢,用这个密码却可以登录网银的啊? 建行手机银行输入正确的银行卡密码了,为何它还是显示不正确?结果我银行卡就被锁住了,它会自动解除吗? 手机银行登陆让输入交易密码输入后出现这个情况,什么意思?明明输的是对的可登不上去。谁知道麻烦告诉我 我的中国银行网上银行用户登录是密码输入正确,但是说我的用户名或密码错误是怎么回事啊! 手机掌上银行输入正确的密码为何老是提示密码错误。 用手机登陆邮政银行,输入的密码明明是正确的,可为什么显示密码错误,去银行取钱又行,手机上密码错误 求解阿,不是第一次登录中国工商手机银行,为什么密码是对的却还要让我重新输入新密码,无法登录 手机银行登陆密码输入正确怎么登不上,求解决 换手机重新登陆建行手机银行为什么输入取款密码明明正确却显示不对? 我的银行卡密码明明正确为什么在手机银行客户端输入的时候显示密码错 手机银行输入密码正确,想转账的时候,总是“请稍后&quot;,无法打开页面,为什么呢? 手机中国建设银行APP。密码输入的是正确的。他老是说我密码错误。密码的大小写我也弄了? 为什么,我的手机掌上银行输入正确密码,却显示密码错误,之前我都是一样操作,都可以登录。哪位知道告诉 建行手机银行明明登陆密码是输入正确的,确显示登陆密码错误,怎么回事?在银行开通时也是输的那登录密码 工行手机银行手势密码登录输入正确,为什么提示错误 怎么我的建设银行app登录不了,手机号码,授权码,密码,都输入正确为什么就是登录不了? 交流电动机调速方法是什么? 五行中有金占水的字有哪此?单字, 四画五行属土的字有哪些? 六画五行属火的字有哪些? 八画五行属木的字有哪些? 十二画五行属土(的字有哪些? 联想ideapad y700利用联想电脑管家更新驱动时无法更新,总是显示安装失败应该怎么处理? 为什么小程序中的群玩助手没有好友位置 有知道舒派睡眠监测器的用法吗?买了一个,不知道怎么用 很多的睡眠监测仪都很笨重,有轻便点的吗,戴在身上就能监测睡眠情况? 去医院拿了睡眠监测仪,有一个套在手指上的指套,好像是测血氧的,请问是套在哪个手指上 便携式睡眠监测仪最少戴多长时间 瑞思迈便携式睡眠监测仪 睡眠监测手环有用吗? 求大学生心理健康论文,一千字左右~拜托了~~ 海带的炒法 谁知道有哪些繁体字是八画的? 8画的繁体字有哪些? 求所有8画的繁体字,想帮儿子起个名字 给儿子起名,我姓吕,要求第二个字是8画的繁体字,第三个字是6画的繁体字 本人姓李 ,取个男孩名字第二个字为8画,第三个字为7画或10画(要繁体字笔画),请帮帮忙 取男名,姓武,后面两个字要其繁体字笔画分别为8,9,急需,谢谢 男孩子姓徐中间三画后面八画的名字是繁体字的好听点的 取男名,姓齐,中间字为繁体字笔画八画,后字为繁体字十六画,急需,谢谢 相帮宝宝起名,姓贾中间的字笔画为8画繁体字,后面的字为10画的繁体字,望高人给予指点,谢谢 如何充分挖掘幼儿文学作品的美育资源 责任一人一半保险公司怎么赔