《The C Programming Language》学习笔记——指针与数组1
2006-08-22 18:56
459 查看
◆ 概念:指针是一种用于存放另一个变量的地址的变量。ANSI C中用类型void *作为通用指针类型。
◆ 指针的类型
每一个指针对象有确定的数据类型,一个指针只能指向一个特定类型的对象。
除 void* ,类型不一致要进行强制类型转换。
如:int *p;
int x;
p = &x;
*p = *p + 10;
◆ 有效的指针运算
1.相同类型指针之间的赋值运算。
2.指针值加或减一个整数值的运算。p + n
在计算p + n时,n根据p所指对象的大小按比例缩放,而p所指对象的大小决定 于 p的说明。
3.指向相同数组中的元素的指针之间的减或比较运算。p < q
如:指针p 和 q指向同一个数组成员,那么它们可以进行诸如 ==、!=、 < 、>= 等关系比较运算。
减运算:若 p < q,那么 q – p + 1就等于p和q所指元素之间的元素的数目。
4. 将指针赋0(或NULL)或指针与0的比较运算。指针赋0(或NULL)可预防野指针。
5.指针算术运算具有一致性,所有指针运算都会自动考虑它所指对象的大小。
◆ 指针与数组下标的比较
1.p = &a[0]; p = a;指针表示数组的首地址。
2. pa[i] == *(pa + i) 一个数组和下标实现的表达式可等价地用指针和偏移量来实现。
3.指针比数组下标运算速度快,但有时难理解。在求数组元素a[i]的值时, C语言实际上先将其转换成 *(a+i)的形式然后再求值。
4. 数组名字与指针的区别:指针是变量,因而C中 pa++和pa = a合法。
数组名字不是变量,因而 a=pa和a++非法。
◆ 指针与函数变元
指针类型的变元使得被调用函数能够访问和更改调用函数中对象的值。
◆ 指针的类型
每一个指针对象有确定的数据类型,一个指针只能指向一个特定类型的对象。
除 void* ,类型不一致要进行强制类型转换。
如:int *p;
int x;
p = &x;
*p = *p + 10;
◆ 有效的指针运算
1.相同类型指针之间的赋值运算。
2.指针值加或减一个整数值的运算。p + n
在计算p + n时,n根据p所指对象的大小按比例缩放,而p所指对象的大小决定 于 p的说明。
3.指向相同数组中的元素的指针之间的减或比较运算。p < q
如:指针p 和 q指向同一个数组成员,那么它们可以进行诸如 ==、!=、 < 、>= 等关系比较运算。
减运算:若 p < q,那么 q – p + 1就等于p和q所指元素之间的元素的数目。
4. 将指针赋0(或NULL)或指针与0的比较运算。指针赋0(或NULL)可预防野指针。
5.指针算术运算具有一致性,所有指针运算都会自动考虑它所指对象的大小。
◆ 指针与数组下标的比较
1.p = &a[0]; p = a;指针表示数组的首地址。
2. pa[i] == *(pa + i) 一个数组和下标实现的表达式可等价地用指针和偏移量来实现。
3.指针比数组下标运算速度快,但有时难理解。在求数组元素a[i]的值时, C语言实际上先将其转换成 *(a+i)的形式然后再求值。
4. 数组名字与指针的区别:指针是变量,因而C中 pa++和pa = a合法。
数组名字不是变量,因而 a=pa和a++非法。
◆ 指针与函数变元
指针类型的变元使得被调用函数能够访问和更改调用函数中对象的值。
相关文章推荐
- TCPL(The C Programming Language)读书笔记 第五章 指针与数组
- The C++ Programming Language 学习笔记 第5章 指针、数组和结构
- 再读《The C Programming Language》 第一章 1.9 字符数组
- 《The C programming language》学习笔记
- 《The C Programming Language》学习笔记——位运算
- 《The C Programming Language》学习笔记
- C语言中指针, 数组和字符串(Pointer, Array and String in C Programming Language)
- 《The Way To Go : A Thorough Introduction To The Go Programming Language》之数组切片
- 再读《The C Programming Language》 - 第一章 1.6 数组
- The C Programming Language 练习题4-6
- C Language:数组、指针
- 简读The Swift Programming Language官方文档--枚举
- the c programming language
- The C Programming Language 练习题4-5
- 读《The C Programming Language》(5)
- Selected solutions to exercise of "The C Programming Language" 2e (Part 5)
- Ada 程序设计语言(The Ada Programming Language)[第四集]
- C程序设计语言(The C Programming Language)
- The Programming Language Idioms
- The C Programming Language 练习题2-8