指標 動態陣列 二維陣列 陣列形參學習小記

2021-07-23 19:37:56 字數 2001 閱讀 9725

應用的編輯器為vs2010

一、指標

1、指標陣列與陣列指標

宣告方式:

int *a[10];       // 指標陣列  陣列中的元素均為指標變數

int (*a)[10];    // 陣列指標  指向長度為10的一維陣列的指標

2、指標所存位址的顯示

3、指向指標的指標

int * *pa ;    //  這裡的pa就是指向指標資料的指標變數 ,它可以指向指標變數,也就是存放指標變數的位址

例程1.1

#include "iostream"

#include"dos.h"

#include

using namespace std;

void main()

}int* p1 = & arraytwo[0][0]; //獲取二維陣列的首位址

for (int i=0;i<12;i++)

arrayone[i]=p1[i];

cout《三、把一維陣列或二維陣列傳遞給函式

2.1二維陣列用陣列形參呼叫一維陣列

void fun1(const int a,int arraysize); //函式的宣告

int pt[10];                        //陣列的宣告及初始化

for(int i=0;i<10;i++)

pt[i]=i+1;

fun1(pt,arraysize);                 //函式的呼叫

void fun1(const int a,int arraysize) //函式的定義

2.2二維陣列用陣列形參呼叫二維陣列

void fun1(const int a[5],int num1); //函式的宣告

int a[4][5];                        //陣列的宣告及初始化

for (int i=0;i<4;i++)

}int arraysize=4;

fun1(a,arraysize);                 //函式的呼叫

void fun1(const int a[5],int num1) //函式的定義

四、動態陣列的應用

3.1 一維動態陣列    

實質:建立乙個陣列指標 指向乙個長度為arraysize的陣列

宣告長度變數

定義指標型別 宣告指標變數

呼叫new操作符建立乙個動態陣列

和普通陣列一樣使用

呼叫delete 銷毀

int arraysize; //宣告長度變數

int *pt = new int[ arraysize];               //也可以分成三部來做 typedef int* intarrayptr;intarrayptr pt; pt = new int[ arraysize];

delete pt;

3.2 二維動態陣列

實質:建立乙個指向指標的指標  指向乙個長度為a的指標陣列  指標陣列的每乙個指標都指向乙個長度為b的陣列

//建立乙個指向指標的指標   指向乙個長度為a,裝著指向長度為b的陣列的陣列指標的指標陣列。

static int d1,d2;                  //宣告二維陣列長度變數

int *(*pt) = new int *[d1];  //定義指標型別 宣告指標變數  呼叫new操作符建立動態二維陣列

for(int i=0;i例程3.1

// 一維動態陣列的建立及使用

// 通過陣列形參來傳遞陣列的函式

// 用 const 定義陣列形參後,函式不能改變原函式

void fun1(const int a,int num1);

void fun2( int a,int num1);

void main()

a=2;

b=3;

pt=&a;

pt=&b; //可以改變指標變數的指標值

//cout<<*pt<

二維陣列作為形參

以下是網上摘抄的一段 首先,我引用了譚浩強先生編著的 c程式設計 上面的一節原文,它簡要介紹了如何將二維陣列作為引數傳遞,原文如下 略有改變,請原諒 原文開始 可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略第一維的大 明,如 void func i...

二維陣列做形參

來看 c primer 中給出的方法 cpp view plain copy void func1 intiarray 10 intmain 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。cpp view plain copy void func2 int parray 10 vo...

二維陣列做形參

可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以可以指 定所有維數的大小,也可以省略第一維的大 明,如 void func int array 3 10 void func int array 10 二者都是合法而且等價,但是不能把第二維或者更高維的大小省略,如下面的定義是 不合...