程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++指針數組、數組指針、數組名及二維數組技能匯總

C++指針數組、數組指針、數組名及二維數組技能匯總

編輯:關於C++

C++指針數組、數組指針、數組名及二維數組技能匯總。本站提示廣大學習愛好者:(C++指針數組、數組指針、數組名及二維數組技能匯總)文章只能為提供參考,不一定能成為您想要的結果。以下是C++指針數組、數組指針、數組名及二維數組技能匯總正文


本文較為具體的剖析了關於懂得C++指針數組,數組指針,數組名,二維數組的一些技能。是比擬主要的概念,信任關於年夜家的C++法式設計有必定的贊助感化。

1、關於數組名

假定稀有組:

int a[3] = {1, 2, 3}

1.數組名代表數組第一個元素的地址,留意,不是數組地址(固然值相等),是數組第一個元素地址,a 同等於 &a[0];

a+1是第二個元素的地址。比第一個元素地址a(或許&a[0])超越了一個整型指針的年夜小,在這裡是4個字節(byte)

cout << a << endl;//會輸入數組第一個元素地址。

2.取址符號&.

&a是數組的地址,留意是數組的地址,表現數組這個全體的地址。不是數組第一個元素的地址(固然他們的值雷同)

&a+1比數組的地址&a超越了一個數組的地址年夜小,在這裡是3*4個字節

int * p = &a;這條語句是不成立的。右邊指針變量p時指向整型的指針,而左邊是數組(類型是數組)的地址,不是數組元素(類型是整型)的地址,所以不克不及賦值。
應當賦值給數組指針(上面會講到)。

關於數組名,切記以上兩點。

2、關於指針數組

1.界說

指針數組,就是寄存指針的數組,數組裡的元素是指針(比較於整型數組,整型數組就是寄存整型的數組,數組裡的元素是整型)

int *ptr[3];若何懂得?依照運算符優先級,[]優先級較年夜,所以ptr先與[3]聯合,表現ptr是一個數組,必定要明白數組的元素類型,所以數組裡的元素類型是整型指針(int*),數組的年夜小紛歧定須要(界說數組時可以依據初始化的元素個數肯定)

ptr[0]就是數組的第零個元素,它是一個整型指針。

示例以下:

int a[3] = {1, 2, 3};
int x = 5;
ptr[0] = &x;
ptr[1] = &a[2];

2.若何應用?

像普通指針一樣應用。*ptr[0]就是第零個元素(一個指針)所指向元素的值,這裡是 5。

3、關於數組指針

1.界說

數組指針,就是指向數組的指針,它是一個指針,指向一個數組(比較於整型指針,就是指向整型的指針,它是一個指針,指向一個整型)

int (*ptr)[3]; 若何懂得?先看小括號外面,*ptr解釋ptr是一個指針,然後跟[]聯合注解這個指針指向一個數組,數組的元素是int

int a[3] = {1, 2, 3};
int(*ptr)[3] = a;//這條語句不成立。

左邊a是數組名,還記得下面說的嗎,數組名代表數組第一個元素的地址,就是&a[0],數組名的類型相當於整型指針(不曉得現實上是否是)int *,由於它指向了第一個元素,第一個元素是int

右邊ptr的類型是int(*)[],是數組指針,指向數組的指針,不是指向整型的指針,不克不及賦值。

int a[3] = {1, 2, 3};
int (*ptr)[3] = &a;//准確。

由於a是一個數組,&a就是數組的地址,還記得下面說的嗎?

2.若何應用?

int a[3] = {1, 2, 3};
int (*ptr)[3] = &a;

cout << (*ptr)[0] << endl;  //輸入1
cout << (*ptr)[1] << endl;  //輸入2

這裡有一點難以懂得。不防比較一下一下代碼。

int a[3] = {1, 2, 3};
int x = 5;
int * p = &x;
cout << *p << endl;  //輸入5

p是一個指向整型的指針,*p就是所指向的變量(整型x)的值。同理ptr是指向數組的指針,*ptr就是所指向的變量(數組a)的值。(*ptr)[0]就是數組的第零個元素。

4、關於二維數組

1.二維數組是一個數組,它的元素是一維數組。謹記這一點,然後把下面的套出去就好了。

int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

數組名

a是數組第一個(或許說第零個更好)元素的地址,第一個元素是一維數組,a[0] ------> {1, 2, 3}。a+1是第二個元素的地址,就是第二個一維數組的地址,超越了3*4個字節

&a是數組的地址,&a+1 就是超越了一個二維數組的年夜小,超越了3 * 4 * 3 個字節。

數組指針

int (*ptr)[3] = a; //准確。

由於a表現第一個元素的地址,第一個元素是一個一維數組,所以a表現一個一維數組的地址,一個數組的地址賦值給數組指針,成立。

5、總結:

1.數組名表現數組的第一個元素的地址。

2.&a(a是一個數組)是數組的地址。

3.指針數組是一個數組,它的元素是指針。

4.數組指針是一個指針,它指向一個數組。

5.二維數組的元素是一維數組。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved