C语言深入学习--checklist2:数组和结构体
2011-04-22 18:43
399 查看
1. 你肯定知道,定义int a[10],a[10]这个元素是无效的;
知道
2. 数组初始化的方法:
待补充
3.数组和指针有千丝万缕的联系而又不同,你是否对他们在不同情况下的使用进行过详
细的总结?
4. “int calendar[10][20]; ”,这是一个什么样的数组?它拥有 10 数组类型的元素,还
是 20 个?
int calendar[10][20]:是10个长度为20个一维数组;
5. a[10],数组名本质上是什么?你是否打印过a的值?
答:数组名a本质上是数组一个元素的地址。
6. 你知道几种获取数组的方法?
(1)a[i],(2)*(a+i),(3)p=a, *(p + i)获取
7. 指针和数组相同吗?什么时候相同?什么时候不同?
指针和数组是不同的。只有如下情况相同:
(1)表达式中的数组名(与声明不同)被编译器当做一个指向该数组的第一个元素的指针:
int a[10],*p,i = 2;
表达式:
p = a; *(p + i), p = a + i;
(2)下标总是与指针的偏移量相等;
(3)作为函数的参数的数组名,等于指针
更详细地见《C专家编程》
8. 使用指针和下标访问,那种方式更快?
《C专家编程》对于此问题有如下叙述:
维数组和指针应用所产生的代码并不具有明显的差别。
数组下标是定义在指针基础上的,所以优化器常常可以把他们装换成为更有效率的指针表达式,并生成相应的机器指令;
用指针迭代一个一维数组常常也并不比之终结使用下标迭代一个一位数组来得快。无论是使用指针还是数组,在连续内存地址移动的时候,编译器都必须计算每次前进的步长,计算的方法就是偏移量乘以每个数组元素占用的字节数。
在处理一维数组的时候,指针并不见得比数组更快。C语言把数组下标改写成为指针偏移量的根本原因是指针和偏移量是底层硬件模型说使用的基本模型
知道
2. 数组初始化的方法:
待补充
3.数组和指针有千丝万缕的联系而又不同,你是否对他们在不同情况下的使用进行过详
细的总结?
4. “int calendar[10][20]; ”,这是一个什么样的数组?它拥有 10 数组类型的元素,还
是 20 个?
int calendar[10][20]:是10个长度为20个一维数组;
5. a[10],数组名本质上是什么?你是否打印过a的值?
答:数组名a本质上是数组一个元素的地址。
6. 你知道几种获取数组的方法?
(1)a[i],(2)*(a+i),(3)p=a, *(p + i)获取
7. 指针和数组相同吗?什么时候相同?什么时候不同?
指针和数组是不同的。只有如下情况相同:
(1)表达式中的数组名(与声明不同)被编译器当做一个指向该数组的第一个元素的指针:
int a[10],*p,i = 2;
表达式:
p = a; *(p + i), p = a + i;
(2)下标总是与指针的偏移量相等;
(3)作为函数的参数的数组名,等于指针
更详细地见《C专家编程》
8. 使用指针和下标访问,那种方式更快?
《C专家编程》对于此问题有如下叙述:
维数组和指针应用所产生的代码并不具有明显的差别。
数组下标是定义在指针基础上的,所以优化器常常可以把他们装换成为更有效率的指针表达式,并生成相应的机器指令;
用指针迭代一个一维数组常常也并不比之终结使用下标迭代一个一位数组来得快。无论是使用指针还是数组,在连续内存地址移动的时候,编译器都必须计算每次前进的步长,计算的方法就是偏移量乘以每个数组元素占用的字节数。
在处理一维数组的时候,指针并不见得比数组更快。C语言把数组下标改写成为指针偏移量的根本原因是指针和偏移量是底层硬件模型说使用的基本模型
相关文章推荐
- C语言学习历程(十五)结构体数组实现通讯录
- C语言--数组深入学习
- C语言数组与指针学习总结
- 黑马程序员-[C语言字符串和数组]学习日记(三)
- 12.从零开始学习C语言--数组
- IOS 学习第七天 C语言 数组
- 在c语言学习中的问题(一):数组指针,指针数组,二维数组的理解与区分
- 数组05 - 零基础入门学习C语言27
- iOS开发学习笔记 2-5 C语言部分 数组
- c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出
- C语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数
- C语言学习-结构体
- C语言学习之路之数组的一些浅见
- 【学习笔记】【C语言】选择结构-if
- C语言:将结构体数组的成绩按照从小到大进行排序。
- c语言的申明,指针和数组的学习总结
- C语言学习笔记之指向数组元素的指针和指向数组的指针
- C语言学习笔记21——多维数组和多维指针
- c语言学习笔记之数组小结
- C语言数组的学习