博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C99C新增内容
阅读量:5354 次
发布时间:2019-06-15

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

    继上一篇复合文字之后,今天我们继续谈一谈C99C的新特性。

   C99标准是继C89标准之后的第二个C语言官方标准,于1999年12月1日正式发布,其中对数据类型(增加了对_Bool),关键字(增加了inline restrict关键字)等方面的增加无疑给我们编程 带来了诸多便利。

 

  1.指定初始化符

      指定的初始化符通常有两种用法:用于数组和用于结构和联合

    (1)用于数组

          用于数组的格式:[index] = vol;  其中,index表示数组的下标,vol表示本数组元素的初始化值。例如:

int x[10] = {[0] = 10, [5] = 30}; //其中x[5],x[10]得到了初始化

    (2)用于结构和联合

         用于结构或联合的格式如下:member-name(成员名称),对结构进行指定的初始化时,允许采用简单的方法对结构中的指定成员进行初始化。例如:

struct example{ int k, m, n; } object  = {m = 10, n = 200};

 

        注:对结构成员进行初始化的顺序没有限制。

  2.伸缩型数组

    C99C的另一个很让人欣喜的特性是伸缩型数组,它用于结构体中。这个特性可以声明最后一个成员是一个具有特殊属性的数组。该特使属性有两点,1.这个数组不存在,至少不是立即存在的。2.我们可以编写代码适当的使用该数组成员,就像它确实存在而且拥有你需要的任何数目的元素一样。听起来很奇怪,我们看一些例子:

struct flex{  int count;  double average;  double score[];};

     伸缩型数组的一些使用规则:  

        (1)伸缩型数组成员必须是最后一个数组成员。
        (2)结构中必须至少有一个其他成员。
        (3)伸缩型数组就像普通数组一样被声明,除了他的方括号是空的。
struct flex ptr;ptr = malloc(sizeof(struct flex) + 5*sizeof(double));//现在我们有了足够的内存,以存储count,average和5个double型数值的数组了。可以使用ptr来访问它们类了:ptr->count = 5;ptr->score[2] = 12.3;

         这样你就可以在任何时候修改结构体占用空间的大小了。

 

 

转载于:https://www.cnblogs.com/2992896672-xiaosha/p/4871551.html

你可能感兴趣的文章
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>