读书人

数组跟指针

发布时间: 2012-08-31 12:55:03 作者: rapoo

数组和指针


    数组初始化问题:当给数组初始化过程中提供的数据少于数组长度时,会按照元素的顺序依次给数据元素初始化,剩下的元素赋值为0;无论是一维数组亦或是多维数组,都是这样。

?

?

?

指针加1操作,对于数组而言,地址会增加到下一个元素的地址,而不是下一个字节。推而广之,一个指针要知道它所指向对象的类型,需要知道这个对象存储所采用的字节数,从而在指针运算过程中,达到目的。

?

    指针的数值是它所指向对象的地址。若是多字节的对象,一般指向首字节地址。*可以用来取得对象的值指针+1操作,在原来指针的值上加上它所指向对象的字节大小 。
dates+2=&date[2];*(dates+2)=date[2];

?

?

使用数组参数(将数组传给函数作为参数):2种方式

?

    int sum(int * ar,int n)int sum(int ar[],int n)

只有在函数声明形参变量的时候才可以使用第2种形式;第二种形式标明该指针是指向一个数组中的元素

?

使用函数参数:

将数组传递给函数,要传入数组的首地址和数组长度,换做指针需要传入数组的首指针和末尾指针

?

首指针就是数组元素名

末尾指针就是数组元素名+数组长度?

?

?

?

指针操作:

?

    赋值运算:求值运算:取指针地址:将一个整数加给指针增加指针的值从指针中减去一个整数减小指针求差值比较

若 希望 不修改 数组元素的值 ,可以 使用const关键字 来做限定 ,const并不是限定 原来数组不可以修改,固定不变 ,只是说函数在处理数组时,把数组当作固定不变的,从而阻止函数对于数据进行修改 ;若要修改数组元素,不要加上const限定 。

有关于 const:
    指向const的指针不可以修改数值 :const double *p=rates;p指针指向数组p首元素 ,此时不可以通过指针p对数组进行修改,因为p指向的是常量;但是可以通过数组名+下标的方式对数组元素进行更新 。p的地址可以进行修改 ,如++操作通常把指向常量的指针用作函数参量,标明函数不会用这个指针来修改数据如:void show_array(const int *,int )

?

?

?

?

?

读书人网 >编程

热点推荐