C语言数组状态研究

来源 :现代商贸工业 | 被引量 : 0次 | 上传用户:hudongfei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在不同上下文语境中,探讨各种类型的C语言数组所呈现出的宏观和微观状态。通过横向和纵向的对比分析,系统地阐述了这些状态形成和改变的原理。
  关键词:C语言;数组;元素
  中图分类号:TP313文献标识码:A文章编号:1672-3198(2009)16-0255-02
  
  1 整型数组状态分析
  
  1.1 整型数组初始化后的状态分析
  以下代码在定义一维整型数组时初始化部分元素,并输出全部单元的值。
  int a[4]={1,2},i;
  for(i=0;i<=3;i++) printf("%d ",a[i]);
  在编译系统下运行,输出结果如下:
  1 2 0 0
  结果分析:对一维整型数组中的部分元素初始化,未初始化的元素自动赋为0值。
  以下代码在定义二维整型数组时初始化部分元素,并输出全部单元的值。
  int a[3][4]={1,2},i,j;
  for(i=0;i<=2;i++)
  {printf("\n");for(j=0;j<=3;j++)printf("%d ",a[i][j]);}
  输出结果如下:
  1 2 0 0
  0 0 0 0
  0 0 0 0
  结果分析:二维数组和多维数组从本质上来说,就是一维数组,只不过这类一维数组的每个元素也是一个数组而已。比如此二维数组实际是含有三个元素的一维数组,每一行是它的一个元素,每个元素又是一个一维数组。
  1.2 给整型数组元素赋值后的状态分析
  给整型数组中的部分元素赋值后,对其他未赋值元素不产生影响,保持原值。
  1.3 输入数据给整型数组元素后的状态分析
  为整型数组中的部分元素输入数据后,对其他元素不产生影响,保持原值。
  
  2 浮点型数组状态分析
  
  2.1 浮点型数组初始化后的状态分析
  以下代码在定义一维浮点型数组时初始化部分元素,并输出全部单元的值。
  float a[4]={0.1,0.2};int i;
  for(i=0;i<=3;i++) printf("%f ",a[i]);
  输出结果如下:
  0.100000 0.200000 0.000000 0.000000
  结果分析:对一维浮点型数组中的部分元素初始化,未初始化的元素自动赋为0.000000,这和整型数组类似。
  2.2 给浮点型数组元素赋值后的状态分析
  给浮点型数组中的部分元素赋值后,对其他未赋值元素不产生影响,保持原值。
  2.3 输入数据给浮点型数组元素后的状态分析
  为浮点型数组中的部分元素输入数据后,对其他元素不产生影响,保持原值。
  
  3 字符数组状态分析
  
  3.1 字符数组初始化后的状态分析
  以下代码在定义一维字符数组时初始化部分元素,并输出全部单元的值。
  char a[6]={'o','k'};int i;
  for(i=0;i<=5;i++) printf("%c",a[i]);
  输出结果如下:
  ok¢¢¢¢
  结果分析:对一维字符数组中的部分元素初始化,未初始化的元素自动赋为空字符(即'\0')。需要说明的是,在BC for Windows中用“¢”表示空字符,而在BC for Dos中用空格代替输出的空字符。不同编译系统显示输出的空字符的方式有所不同。
  3.2 给字符数组元素赋值后的状态分析
  给字符数组中的部分元素赋值后,对其他未赋值元素不产生影响,保持原值。
  3.3 输入数据给字符数组元素后的状态分析
  为字符数组中的部分元素输入数据后,对其他元素不产生影响,保持原值。
  值得注意的是,在C语言中,以字符'\0'作为字符串的结束标志,把字符串作为字符数组处理。在程序中根据'\0'的位置判断字符串是否结束,而和字符数组的长度无关。换句话说,在字符数组中出现的第一个'\0'之前的字符才是字符串中的有效字符。
  以下代码用一个字符串常量对一维字符数组初始化,而后向数组中输入另一个较短的字符串,初始化和输入后都输出全部单元的值。
  char a[10]="Computer";int i;
  for(i=0;i<=9;i++) printf("%c",a[i]);
  scanf("%s",a);
  for(i=0;i<=9;i++) printf("%c",a[i]);
  输入:good输出结果如下:Computer¢¢good¢ter¢¢
  结果分析:虽然部分元素‘t’、‘e’、‘r’并未被输入的新串覆盖,保持了原值,但它们已不属于数组中存放的字符串(即“good”)的有效字符。
  
  4 指针数组状态分析
  
  4.1 指针数组初始化后的状态分析
  以下代码在定义一维指针数组时初始化部分元素,并输出全部单元的值。
  int b,c,i;int* a[4]={&b,&c};
  for(i=0;i<=3;i++) printf("%d ",a[i]);
  输出结果如下:6586 6584 0 0
  结果分析:输出结果的前两个数是变量b、c的有效地址,未初始化的元素自动赋为0值。
  4.2 给指针数组元素赋值后的状态分析
  给指针数组中的部分元素赋值后,对其他未赋值元素不产生影响,保持原值。
  4.3 输入数据给指针数组元素后的状态分析
  为指针数组中的部分元素输入数据后,对其他元素不产生影响,保持原值。
  
  5 结构体数组状态分析
  
  5.1 结构体数组初始化后的状态分析
  以下代码在定义一维结构体数组时初始化部分元素,并输出全部单元的值。
  struct student
  {long num; char name[20]; char sex; float score;
  }stu[3]={{99020122,"Feng Hao",'M',72.5},{99020130,"Han Jie",'F',83.5}};
  int i;
  for(i=0;i<=2;i++)
  printf("%8ld %20s %c %.1f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].score);
  输出结果如下:
  99020122 Feng Hao M 72.5
  99020130Han JieF 83.5
  0¢0.0
  结果分析:对一维结构体数组中的部分元素初始化,未初始化的元素的成员和前面提到的标准类型数组初始化的处理方式相同。如果只对第一个元素的部分成员初始化,则此元素的未初始化成员以及其余未初始化的元素也类似处理。比如将以上代码第3行做如下修改:
  }stu[3]={99020122,"Feng Hao"};
  其余代码不变,输出结果如下:
  99020122 Feng Hao ¢0.0
  0 ¢0.0
  0 ¢0.0
  5.2 给结构体数组元素赋值后的状态分析
  给结构体数组中的部分元素或某个元素的部分成员赋值后,对其他未赋值元素或这个元素的未赋值成员不产生影响,保持原值。
  5.3 输入数据给结构体数组元素后的状态分析
  为结构体数组中的部分元素或某个元素的部分成员输入数据后,对其余元素或这个元素的其余成员不产生影响,保持原值。
  
  参考文献
  [1]谭浩强.C程序设计[M].北京:清华大学出版社,2004.
其他文献
摘 要:首先,分别从单次博弈和重复博弈的角度,对关系型融资模式和保持距离型融资模式下企业和投资者的最优策略进行了分析;随后,以日本的主银行制度为例,从现实角度分析了关系型融资模式的优点和不足;最后,对我国转型经济时期关系型融资制度的改革与发展提出了意见和建议。  关键词:关系型融资;保持距离型融资;信息不对称;主银行制度;博弈分析  中图分类号:F830.592文献标识码:A文章编号:1672-3
期刊
摘 要:万用表是电工、电子必备的仪表之一,每个学电子专业的学生都应该熟练掌握其工作原理及使用方法。在教学实践中,通过MF-47型万用表的装配实习,要求学生了解万用表的工作原理,掌握焊接技术和整机装配工艺,掌握万用表的使用与故障排除方法。  关键词:万用表;原理图;焊接;装配;故障排除  中图分类号:TM938.1+2文献标识码:A文章编号:1672-3198(2009)16-0207-01    
期刊
摘 要:选取了三种不同的Copula函数,采用极大似然法估计得出相应的参数,并确定Clayton函数为最适合描述股票市场风险与流动性风险相依结构的函数,同时也说明股票市场风险与流动性风险的相关模式具有非对称性,下尾的相关性强于上尾的相关性。  关键词:Copula函数;市场风险;流动性风险  中图分类号:F830.91文献标识码:A文章编号:1672-3198(2009)16-0145-01   
期刊
摘 要:探讨了促销对消费者行为产生影响的理论依据,并以此为指导,通过市场调研,揭示了W公司的顾客群体在不同促销方式下态度与行为的相关性以及对不同促销方式的偏好程度。  关键词:促销效果市场调研  中图分类号:F27文献标识码:A文章编号:1672-3198(2009)16-0122-02    1 引言    为了从实践的角度探讨不同的促销方式对于消费者的行为影响如何?对其购买意向的促进效果如何?
期刊
摘 要:越来越多的大学生对信用卡这一新兴的消费模式表现出青睐之心。信用卡消费已经成为大学生的一种较普遍的消费现象,但大多数人仅仅将其作为一种时尚、方便的消费方式,而未将它视为一种理财行为,甚至将其作为一种挥霍方式。校园“负翁”兼职还卡债现象值得大家深思,大学生的个人理财迫在眉睫。  关键词:大学生;信用卡;消费;理财  中图分类号:F014.5文献标识码:A文章编号:1672-3198(2009)
期刊
摘 要:“啤酒分销游戏”是供应链管理课程教学中的重要内容。为增强学生对供应链中信息扭曲和牛鞭效应的理解,通过在供应链管理课程教学中对实践性教学思想的引入与设计,对“啤酒分销游戏”进行实验设计,并以实例进行分析,从而使学生在学习过程中可以充分理解信息扭曲和牛鞭效应对供应链管理所带来的危害。  关键词:供应链管理;课程教学;“啤酒分销游戏”;实验设计  中图分类号:G424文献标识码:A文章编号:16
期刊
摘 要:2008年英语四、六级考试形式发生了重大变化,表面上是听力的比例加大,实质是对输入和产出能力要求的提高,作为语句输入和输出基本单位词汇的要求也相应提高。那么就要求教师,在英语教学中,不但要注重词汇的宽度,还要重视词汇的深度,以提高学生的产出能力。  关键词:认知结构;词汇网络;词汇宽度;词汇深度,英语教学  中图分类号:G623.31文献标识码:A文章编号:1672-3198(2009)1
期刊
摘 要:老厂系统的改造是比较繁琐的,因为原来系统可能在运行的过程中修改过,但并没有反应在图纸中,但设计往往都是以原来的图纸为依据,这就为以后的施工留下了问题与隐患,依据电厂实际改造过程,叙述解决施工时出现的问题。  关键词:锅炉补给水程控;电磁阀;气动执行机构  中图分类号:TU832.2+1文献标识码:A文章编号:1672-3198(2009)16-0274-02    1 原老厂系统    阳
期刊
摘 要:新型农村合作医疗作为我国卫生保障事业的重要组成部分,是建设小康社会、维护社会稳定的重大举措。它不仅可以实现农民就医的平等权利,而且可以提高卫生服务效率、缩小城乡差距。主要以贵州省三穗县为例,探讨新型农村合作医疗在运行过程中所取得的成绩和存在问题,并提出一些建议。  关键词:少数民族地区;农村合作医疗;城乡差距  中图分类号:R197文献标识码:A文章编号:1672-3198(2009)16
期刊
摘 要:大学校园环境是大学赖以生存和发展的基础。大学校园环境是指以大学校园为地理环境圈,以社会文化、校园历史传统为背景,以全体校园人为主体,以校园特色物质形式为外部表现,制约和影响着校园人活动及发展的一种环境。对高校周边环境特点进行分析和研究,有针对性地对大学生进行安全保护,是优化高校育人环境,帮助大学生健康成长的重要途径。通过对湖北经济学院周边环境现状的分析,寻找对策,理清校园安全管理思路和措施
期刊