C Primer Plus 第十章学习总结……2015.4.30

来源:互联网 发布:如何禁止下载软件 编辑:程序博客网 时间:2024/05/22 05:33

C Primer Plus 

                  第五版

第十章  数组和指针

  数组:当数值数目少于数组元素数目时,多余的数组元素被初始化为0;

初始化数组时可以省略括号中数字  int ar[ ]={1,2,3}

C不支持把数组作为一个整体赋值,也不支持用花括号括起来的列表形式进行赋值(初始化时除外)

数组索引不能超过数组边界

变长数组:在一个函数中定义:int =4;int ar[  n ];合法


指针

指针:1、指针数值就是它所指向的对象的地址

            2、指针前运用运算符*可以得到指针指向的对象的数值

            3、对指针加1等价于对指针的值加上它指向的对象的字节大小,要是加一个整数就是指向的对象的字节乘这个整数后的和

            4、可以用指针标识数组的每个元素并得到每个元素的数值

int sum(int ar[],int n)无论任何情况,int*ar 都表示ar是指向int的指针,形式int ar[]也可以表示,但只能是在是声明形式参量时可以使用

 int sum(int *ar,int n)    int sum(int * ,int  )    int sum(int  ar[],int n)    int sum(int  ar[],int  )   四种表示等价。

指针指向数值最后一个元素的下一个元素是合法的。

一元运算符*和++具有相同的优先级,但他们的结合顺序是从右到左

ar[i]==*(ar+i)等价

指针可以进行如下操作

1、赋值:可以把一个地址赋给指针通常为数组名或&

2、求值:运算符*可以取出指针指向的数值

3、取指针地址:指针变量同其他变量一样具有地址和数值

4、将一个整数加给指针,是指针的值加上指针指向的数据类型的字节数与整数相乘积的和

5、指针间可以求差值,一般是数值,表示两个元素间的距离


指针最基的功能在于同函数交换信息


int sum(const int ar[ ]);用const可以对数组进行保护

将常量或非常量数据的地址赋给指针是合法的

把 非const 指针赋给const 指针的变量是非法的

int (* pt)[4]一个指针指向4个int;

int sum(int ar[][],int n)非法声明

int sum(int ar[][4],int n)  合法声明

变长数组:在函数内部,或作为形式参量方可声明,不可进行初始化

int sum(int rows ,int cols,int ar[rows][cols])合法 int sum(int ,int ,int ar[*][*])合法

int sum(int ar[rows][cols],int rows ,int cols)非法

变长数组允许动态分配内存。













0 0
原创粉丝点击