当前位置:编程学习 > C/C++ >>

C语言常见问题

 

我最近看了一份文档,叫做《C语言常见问题》,感觉里面有很多知识很基础,但就是容易弄错!正所谓“不及跬步,无以致千里”,只有打好了基础才会有所突破。基础是水,没有它鱼儿活不了;基础是山,没有它树木长不了;基础是云,没有它大雨下不了。

 

 

    从这份文档中,我提取了比较重要的内容,在此与大家分享!

 

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

作者:zhouzxi

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,