複習:陣列指標
1、二維陣列
二維陣列,有行,有列。二維陣列可以看成有多個一維陣列構成的,是多個一維陣列的集合,可以認為二維陣列的每乙個元素是個一維陣列。
例:
int a[3]
[5];
定義了乙個3行5列的乙個二維陣列。
可以認為二維陣列a由3個一維陣列構成,每個元素是乙個一維陣列。
回顧:陣列的名字是陣列的首位址,是第0個元素的位址,是個常量,陣列名字加1指向下個元素
#include
intmain
(int argc,
char
*ar**)
2、陣列指標的概念:
本身是個指標,指向乙個陣列,加1跳乙個陣列,即指向下個陣列。
3、陣列指標的定義方法:
指向的陣列的型別(*指標變數名)[指向的陣列的元素個數]
int (*p)[5];//定義了乙個陣列指標變數p,p指向的是整型的有5個元素的陣列
p+1 往下指5個整型,跳過乙個有5個整型元素的陣列。
例15:
#include
intmain()
例16:陣列指標的用法1
#include
void
fun(
int(
*p)[5]
,int x,
int y)
intmain()
printf
("\n");
}}
4、各種陣列指標的定義:
(1)、一維陣列指標,加1後指向下個一維陣列
int(*p)[5] ;
配合每行有5個int型元素的二維陣列來用
int a[3][5]
int b[4][5]
int c[5][5]
int d[6][5]
……p=a;
p=b;
p=c;
p=d;
都是可以的~~~~
(2)、二維陣列指標,加1後指向下個二維陣列
int(*p)[4][5];
配合三維陣列來用,三維陣列中由若干個4行5列二維陣列構成
int a[3][4][5];
int b[4][4][5];
int c[5][4][5];
int d[6][4][5];
這些三維陣列,有個共同的特點,都是有若干個4行5的二維陣列構成。
p=a;
p=b;
p=c;
p=d;
例17:
#include
intmain()
5、三維陣列指標,加1後指向下個三維陣列
int(*p)[4][5][6];
p+1跳乙個三維陣列;
什麼樣的三維陣列啊?
由4個5行6列的二維陣列構成的三維陣列
配合:int a[7][4][5][6];
6、四維陣列指標,加1後指向下個四維陣列,以此類推。。。。
7、注意:
容易混淆的內容:
指標陣列:是個陣列,有若干個相同型別的指標構成的集合
int *p[10];
陣列p有10個int *型別的指標變數構成,分別是p[0] ~p[9]
陣列指標:本身是個指標,指向乙個陣列,加1跳乙個陣列
int (*p)[10];
p是個指標,p是個陣列指標,p加1指向下個陣列,跳10個整形。
指標的指標:
int **p;//p是指標的指標
int *q;
p=&q;
&a就變成了乙個一維陣列指標,是 int(*p)[10]型別的。
(&a) +1 和&a相差乙個陣列即10個元素即40個位元組。
例18:
#include
intmain()
a是個int *型別的指標,是a[0]的位址。
&a 變成了陣列指標,加1跳乙個10個元素的整型一維陣列
例19:
int a[4]
[5];
a+1 跳5個整型
(&a)+1 跳4行5列(80個位元組)。
mysql複習第一天
匹配任意單個字元 模版資料 查詢first name第二個字元為t的資料 select first name from table where first name like t 指定某個符號為轉義符 查詢first name第二個字元為 的資料 select first name from tab...
Spring 複習第一天
一 sping的優點 1 方便解耦,簡化開發 spring就是乙個大工廠,可以將所有物件建立和依賴關係維護,交給spring管理。2 aop程式設計的支援 spring提供面向切面程式設計,可以方便的實現對程式進行許可權攔截,執行監控等功能。3 宣告式事務的支援 只需要通過配置就可以完成對事物的管理...
網工複習第一天
今天做測試題,有關程序排程的。記錄一下 程序排程可以使用ps和top命令來檢視。1.ps命令 ps命令各我們可以用ps help來檢視引數。引數有的需要加 有的也不需要加。這裡說一下幾個常用的引數。u是用於顯示更加詳細的資訊 x是用於顯示沒有控制台的程序以及後台程序 a是用於顯示系統中所有使用者的程...