C回顾之三

这次回顾主要针对C中关键的部分:数组和指针以及函数的内容,当然只涉及了一点,其他有待继续:


  1. 如果scanf()在尝试转换一个数值前遇到了问题(比如检测到文件尾部或者遇到一个硬件问题)它就会返回一个特殊值EOF,这个值一般被定义为-1;

  2. 在while(goast != 0)和while(goast)选择后者更加自然,也是大部分程序猿选择的方式;

  3. 使用5 == value;更有助于检查出来 = 和 == 的错误;

  4. 数组若是未进行初始化,则自动初始化各个元素为0;C99还支持这样的部分初始化方法:int array[6] = { [5] = 212 };

  5. C不会做数组的越界检查,这是出于C信任程序猿的原则,因此程序猿自身要做到合理的使用数组,注意边界问题;

  6. C99引入了变长数组(Variable-length arry, VLA),主要是为了使C更适用于数值计算,但是VLA存在某些限制:例如声明时不能进行初始化。

  7. 函数原型声明的重要性,不使用参数:void imax(void);不确定的参数:int printf( char *,...);

  8. 在递归与循环都可以实现的时候,尽量使用循环,因为循环占用的内存更少;

    递归的优缺点,优点:对于某些问题提供了便利的解决方案;缺点:很快会消耗掉计算机资源;

  9. 声明一个变量为指针式不够的,还要说明指针所指向的数据的类型:比如:

    int * pi;    //pi是一个指向整型变量的指针

    char * pc;   //pc是一个指向字符型变量的指针

    *和指针名之间的空格不是必须的,通常在声明中使用空格,而在指向变量时将其省略;

  10. 但是考虑上述中pi,pc本身是什么类型呢?在大多数系统中,指针变量本身是无符号整型数据,但是他不可以像整型数据那样进行操作,(如果要进行地址输出,使用%p格式,按照16进制进行输出);

转载于:https://my.oschina.net/flame804/blog/294489

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值