C语言常见问题

  1. 在C语言中,有一个“流”的概念;流可以分为两种类型:文本流(文件)和二进制流(文件);文本流是解释性的,最长可达255个字符;二进制流是非解释性的,一次处理一个字符。

  2. 在用C语言编程的时候,我们都是用#include指令包含类型为".h"的文件,那么可以用该指令包含类型不为".h"的文件吗?答案是:可以。我也是刚才看到这个的。

  3. 在C语言中,我们经常使用宏;那么编程的时候,是使用宏更好,还是使用函数更好?一般来说,应该用宏去替换小的、可重复的代码段,这样可以使得程序得运行速度更快;当任务比较复杂,需要多行代码才能实现时,或要求程序越小越好时,就应该使用函数。

  4. 串拷贝(strcpy)和内存拷贝(memcpy)有什么不同?strcpy()函数只能拷贝字符串,而memcpy()函数可以拷贝任意类型的数据。在C语言中,可以用itoa()函数将整数转换为字符串,用atoi()函数将字符串转换为整数。

  5. 在指针运算中,我们要区分“空指针”和“void指针”:空指针的值是NULL,它并不指向任何对象;而void指针一般被称为通用指针或泛指针,它指向某个对象,但该对象不属于任何类型。

  6. 在什么时候使用“空指针”?1)用空指针终止对递归数据结构的间接引用;2)用空指针作函数调用失败时的返回值;3)用空指针作警戒值;在什么时候使用void指针?当进行纯粹的内存操作时,或者传递一个指向未定类型的指针时,可以使用void指针。

  7. NULL总是被定义为0吗?NULL不是被定义为0,就是被定义为(void*)0,这两种值几乎是相同的;NULL总是等于0吗?如果指“与0比较的结果为相等”,那么确实是等于0;如果指“其存储方式和整型值0相同”,那么答案是“不”,NULL并不必须被存为一个整型值0。

  8. 用指针作if语句的条件表达式意味着什么?当把一个指针作为条件表达式时,所要判断的条件实际上就是“该指针是否为一空指针”;两个指针是不能相加的。

  9. 在C语言中,用void关键字说明的函数是没有返回值的,并且也没有必要加入return语句;在有些情况下,一个函数可能会引起严重的错误,并且要求立即退出该函数,这时就应该加入一个return语句,以跳过函数体内还未执行的代码。

  10. exit()和return有什么不同?用exit()函数可以退出程序并将控制权返回给操作系统,而用return语句可以从一个函数中返回并将控制权返回给调用该函数的函数。

  11. 数组的下标总是从0开始吗?是的;可以使用数组后面第一个元素的地址吗?可以使用数组后面第一个元素的地址,但不可以查看该地址中的值。

  12. array_name和&array_name有什么不同?前者是指向数组中第一个元素的指针,后者是指向整个数组的指针。

  13. 为什么应该使用标准库函数而不使用自己编写函数?标准库函数有三点好处:准确性、高效性和可移植性。

  14. 什么是“局部环境(local)”?局部环境是对特定环境下程序要遵循的特定规则的一种描述,它对程序的国际化很有帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值