C专家编程学习笔记(3)
第8章:再论数组
1.什么时候数组和指针是相同的
C语言标注对此作了如下说明:
规则1: 表达式中的数组名(与声明不同)被编译器当作一个指向该数组第一个元素的指针.
int a[10], *p, i=2;
可以通过以下任何一种方法访问a[i];
p = a; p[i];
p = a; *(p+a);
p = a + i; *p
在表达式中,指针和数组是可以互换的,因为它们在编译器里的最终形式都是指针,并且都可以进行取下标操作.
规则2: 下标总是与指针的偏移量相同.
规则3: 在函数参数的声明中,数组名被编译器当作指向该数组第一个元素的指针.
在函数形参定义这个特殊情况下,编译器必须把数组形式改写成指向数组第一个元素的指针形式.编译器只向函数传递数组的地址,而不是整个数组的拷贝.因此在my_function()的调用上,无论实参是数组还是真的指针都是合法的.
my_function(int *turnip) { ... }
my_function(int turnip[]) { ... }
my_function(int turnip[200]) { ... }
相关文档:
[C/C++ Digestion] –
重载操作符
作者:
Jason Lee @
http://blog.csdn.net/jasonblog
日期:
2010-04-17
[1]
重载操作符
重载操作符从大的方面来讲可以分为两类:最好或必须作为类的成员函数的,以及相反。而具体地讲,最好或必须作为类的成员函数的有赋值操作符
( = )
、下标操作符
( [] ) ......
1.传统上,C语言要求必须在一个代码块的开始处声明变量,在这之前不允许任何其他语句。现在C99遵循C++的惯例,允许把声明放在代码块中的任何位置。然而,在首次使用变量之前仍然必须先声明它。
2.操作系统和C库通常使用以一个或两个下划线开始的名字,因些你自己最好避免这种用法。
3.C语言的名字是区分大小写的。 ......
CPU:s3c2410
OS:Linux Kernel 2.6.30.4
最近刚做完的嵌入式键盘的驱动,由于初次接触,总结一下。
首先简单说说这个键盘的实现原理,IIC总线工作原理没必要废话,s3c2410的手册中讲的很明白。硬件方面这个键盘通过一个AVR单片机(ATMEGA48)接在IIC总线上,也就是说,直接与IIC总线链接的设备并不是我们用的键盘,而是 ......