您的位置:首页 > 其它

《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++非法。

◆ 指针与函数变元
      指针类型的变元使得被调用函数能够访问和更改调用函数中对象的值。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c null 语言