六、数组(例1---声明和初始化)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   //数组的定义和初始化
   int array1[5]={1,2,3,4,5};
   int array2[5]={1,2,3};//没写的后面的元素值默认为0
   int i;for(i=0;i<5;i++)printf("%d ",array2[i]);printf("\n");
   int array3[5];//可能会有垃圾值
   for(i=0;i<5;i++)printf("%d ",array3[i]);printf("\n");
   int array4[ ]={1,2,3,4,5};
   for(i=0;i<sizeof(array4)/sizeof(int);i++)printf("%d ",array4[i]); printf("\n");
   //sizeof(array4)在这里能探测到数组array4的整体空间占用情况,
   //array4数组名在这里不单指明了首地址,!!!还携带了数组的整体空间占用属性(不是所有的首地址或指针都会有就么一个特性)
   
   //数组的动态定义
   //while(getchar()!='\n');上文有用到scanf并且未用同样的while语句时才加这一句。
   //fflush(stdin); //<--它在VC上能这么用,但在UNIX下不能这么用。
                    //fflush(stdout);可以用,表示强制输出缓冲区中的内容
INPUT_ARY_SIZE:
   printf("请输入待定义的数组元素个数:");
   int iRet=scanf("%d",&i); 
   while(getchar()!='\n');
   //fflush(stdout); //要用上面的WHILE替代使用
   //printf("%m\n");输出最后一次的系统错误信息,如果上文有明确的错误返回值时,再调用这一句比较有效
   if(iRet<1||i<=0||i>=100){printf("输入错误!\n");goto INPUT_ARY_SIZE;}   

   int array5[i];//运态定义了数组的元素个数。这样的数组仍然由栈管理,自动变量类型,系统会自动的回收空间,没有办法进行初始化  <--UNIX下支持这样的定义,但是在WINDOWS下可能不行
   int i2; for(i2=0;i2<i;i2++)array5[i2]=i2;//可以这么賦值
   for(i=0;i<sizeof(array5)/sizeof(int);i++)printf("%d ",array5[i]);printf("\n");
   //智能数组,不需要人工回收空间
   //数组可以只有一个元素 <--这样的数组就等价于一个变量
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值