《C和指针》 读后感

《C和指针》这本书介绍了C语言的内容。

在C语言中用/*和*/来注释掉这段代码,这个实际上并不是十分的安全,要从逻辑上删除一段C代码,最好的办法是使用#if指令:   

 #if 0        

 Statement  

  #endif 

其他语言中,无返回值的函数称为过程。 数组做参数的时候是以引用的方式传递的,即地址传递。而标量和常量都是传 值调用,被调用的函数无法修改调用函数以传值形式传递给它的参数,然而当被调用函数修改数组参数的其中一个元素时,调用函数所传递的数组就会被实际修改。 字符是以一串NUL字节结尾的字符。NUL作为字符串终止符,它本身并不被看作字符的一部分,NUL表示字符串结尾,NULL表示空指针。当传递一个数组时,可以无需指定数组的长度(如果需要长度,则需要再增加一个长度的参数)。 int  read(int a[], int len);  (在函数内部最好进行出错检查) 。使用scanf函数应该注意:使用所有格式码(除了%c之外)时,输入值之前的空白(空格、制表符、换行符等)会被跳过,值后面的空白表示该值的结束,因此,用%s格式码输入字符串时,中间不能包含空白。编译器通常不对数组下标的有效性进行检查。注释是不安全的,是不允许嵌套的,总是与第一个*/相结合。

C语言在实现的过程中,存在两种环境,一种是翻译环境(源代码被转换为可执行的机器指令),另一种是执行环境(用于执行实际代码),这两种环境不必位于同一台机器上,例如交叉编译。翻译包括两个阶段:编译与链接,其中编译包括:预处理,解析,优化(可选)。执行包括几个阶段:首先,程序必须再入到内存中。在宿主环境中(也就是具有操作系统的环境),这个任务由操作系统完成。那些不是存储在堆栈中的尚未初始化的变量将在这个时候得到初始值。然后,便开始执行程序代码。在绝大多数机器里,程序将使用一个运行时堆栈,它用于存储函数的局部变量和返回地址。程序同时也可以使用静态内存,存储于静态内存中的变量在程序的整个执行过程中将一直保留它们的值。

通过这本书,让我对C语言更了解了一些。

posted @ 2016-04-10 18:05  毒药。  阅读(1054)  评论(1编辑  收藏  举报