C和指针 学习笔记—第1-2章

C和指针这本经典著作,最近开始学习,然后想与大家共享下,希望共同进步!网络的力量是强大的,会碰撞出思想的火花来!

 

第一章 快速上手

1、要从逻辑上删除一段C代码,更好的办法是使用#if指令:

#if 0

statements

#endif

#if  和 #endif之间的程序段就可以有效地从程序中去除,即使这段代码之间原先存在注释也无妨

 

2、关于scanf返回值的问题

     scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include<stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF

 

3、当数组名作为实参时,传给函数的实际上是一个指向数组起始位置的指针,也就是数组在内存中的地址

 

4、为什么ch被声明为整型,但是又用来读取字符的原因?

例如:

int ch;

while( (ch = getchar()) != EOF &&  ch != '\n');

EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地被解释为EOF。但同时,这也意味着接收字符的ch必须足够大,足以容纳EOF,这就是ch使用整型值的原因。尽管char类型变量的目的是为了让它们容纳字符型的值,但字符在本质上是小整型值 

 

5、数组做参数的时候是以引用的方式传递的,即地址传递。而标量和常量都是传值调用,被调用的函数无法修改调用函数以传值形式传递给它的参数,然而当被调用函数修改数组参数的其中一个元素时,调用函数所传递的数组就会被实际修改。

当数组名作为实参时,传给函数的实际上是一个指向数组起始位置的指针,也就是数组在内存中的地址。正因为实际传递的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值