C专家编程--读书笔记九 再论数组

第九章
 
一、知识点
1、所有作为函数参数的数组名总是可以通过编译器转换成指针。

然而,数组和指针在编译器处理时是不同的,在运行时的表示形式也是不一样的,并可能产生不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。(P205)
 
2、什么时候数组和指针是相同的?(P207)
(1)、表达式中的数组名(与声明不同)被编译器当作一个指向该数组第一个元素的指针;
(2)、下标总是与指针的偏移量相同;
(3)、在函数参数的声明中,数组名被编译器当作指向该数组第一个元素的指针。
 
3、在C语言中,所有非数组形式的数据实参均以传值形式(对实参作一份拷贝并传递给调用的函数,函数不能修改作为实参的实际变量的值,而只能修改传递给它的那份拷贝)调用,数组和函数则是传址调用。(P210)
 
4、数组和指针可交换性的总结:(P214)
 

5、对于C语言中多维数组的理解,当提到C语言中的数组时,就把它看作是一种向量,也就是某种对象的一维数组,数组的元素可以是另一个数组。(P216)
 
6、对于数组的初始化,如果数组的长度比所提供的初始化值的个数要多,剩余的几个元素会自动设置为0。如果元素的类型是指针,那么它们被初始化为NULL;如果元素的类型是float,那么它们被初始化为0.0.(P219)
 
7、只有字符串常量才可以初始化指针数组。(P220)
 
二、问题
1、关于传值调用、传址调用等?
 
2、写一个简单的程序,检查在你的系统中,浮点数0.0的位模式是否与整型数0的位模式相同?
posted on 2012-04-30 23:26  谷堆旁边  阅读(280)  评论(0编辑  收藏  举报