指针(二)
指针与数组 指向数组的指针 数组是内存中一块连续的区域,存储着相同类型的数据,在声明一个数组时,会开辟两个空间,一个用于保存数组元素,一个用来保存数组的第一个元素的地址,数组名就是用于保存数组第一个元素地址的指针。 指向一位数组的指针 int a1 [ 100 ] ; int n ; n = * a1 ; //n 为数组a1第一个元素的值 n = * ( a1 + 5 ) ; // 数组a1的第6个元素 尽管指针与数组之间有密切的关系,但是指针类型变量是可以不断进行赋值,在程序运行过程中可以发成变化,数组名虽然是指针,但是是一种指针类型的常量,只能指向固定的内存地址,不能将一个指针值赋值给一个数组名,同时在程序运行的过程中是不能发生改变。 指向多维数组的指针 例如:二维数组相当于一个二维表格,二维数组具有首地址,行首地址,元素地址等,数组名代表首地址,称为二维数组的指针,行首地址是二维数组中某一行的首地址,每行相当于一个一维数组,元素地址是二维地址中具体的分量。 int a [ 4 ] [ 5 ] ; // a代表整个二维数组的首地址,*a代表是第0行首地址,a[0]代表第i行的首地址 指向字符串的指针 char * str1 = "string1" ; 指针数组与指向指针的指针 指针数组 数组元素均为指针类型数据的数组。指针数组中的每个元素都相当于一个指针变量。 int * p