博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言程序设计现代方法_数组(第八章)
阅读量:4652 次
发布时间:2019-06-09

本文共 1076 字,大约阅读时间需要 3 分钟。

C语言不要求检查下标的范围。当下标超出范围时,程序可能会执行不可预知的行为。

 

看下这个程序:

#include 
#define N 10 //int main(){ int a[N],i; printf("Enter %d numbers: ",N); for(i=0; i
=0; i--) { printf("% d ",a[i]); } printf("\n"); return 0;}

程序一共4次使用到了宏N:在数组a的声明中,在显示提示的printf函数中,还有两个for循环

可以随意改变N的值,方便,为宏定义的优越性

 

在看这一个:

#include 
int main(){ int i,n; scanf("%d",&n); int a[n]; printf("Ebter %d numbers:",n); for(i=0; i
=0; i--) printf(" %d ",a[i]); return 0;}

你认为有错吗?

对错在于C89与C99的差别

这种方法为C99的变长数组,可以动态输入

 

C99中,可以指定初始化式,如

int a[15] = {0,0,29,0,0,0,0,0,0,7,0,0,0,0,48};

由于希望元素2为29,元素9为7,元素14为48,而其他全部为0.对于大数组可能会出错

C99中可以这样赋值

int a[15] = {[14] = 48,[9] = 7,[2] = 29};

除了可以使赋值变得更简短,更易读之外,赋值的顺序不再是问题

也可以这样 

int a[15] = {

[14] = 29,[9] = 7,[14] = 48};

 

括号中的数字为指示符

指示符必须为整形常量表达式。如果待初始化的数组长度为n则每个指示符的值都必须在0到n-1之间。

但是,如果数组长度是省略的,指示符可以使任意非负整数;对于后一者情况,编译器将根据最大的指示符推断出数组的长度。

如,指示符的最大值是23,因此数组的长度是24

int b[] = {[5] = 10,[23] = 13, [11] = 36, [15] = 29};

未指定的默认为0

 

转载于:https://www.cnblogs.com/ccccnzb/p/3995730.html

你可能感兴趣的文章
设计模式_责任链模式
查看>>
HTTP请求中三种参数类型
查看>>
3DES加密/解密
查看>>
【转】C#常用控件名缩写-C#_ControlName
查看>>
CF990G
查看>>
四则运算(2.0)
查看>>
进度条
查看>>
Noip2013货车运输
查看>>
vmware安装minimal centos报错/etc/rc5.d/s99local : line:25 : eject : command not found
查看>>
邮件模板定义
查看>>
odoo server命令行以及配置文件
查看>>
16 On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima 1609.04836v1
查看>>
docker 删除应用服务
查看>>
【解读】山香科技:互联网从软件革命到移动革命
查看>>
Delphi通过Map文件查找内存地址出错代码所在行
查看>>
driver, module以及怎么看他们
查看>>
初学JAVA简记——随机数的产生
查看>>
Majority Element in an Array
查看>>
MFC设置窗体背景
查看>>
分布式事务
查看>>