国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++教程:C++指針與數組詳解

2020-05-23 14:27:10
字體:
來源:轉載
供稿:網友
我們在上一章說到,在向函數傳遞數組參數的時候,實質上是傳遞數組首元素的地址。那么數組和指針有著什么樣的關系嗎?

數組名的實質

數組名并不是一個普通的變量,而是一個指向數組首元素的指針。也就是說,我們可以用數組名來初始化一個對應類型的指針。既然如此,經過初始化的指針能否代替原來的數組名呢?答案是肯定的。

下面我們來看一段程序,了解數組名和指針的用法:(程序8.5)
#include "iostream.h"
int main()
{
   int a[6]={5,3,4,1,2,6};
   int *aptr=a;
   for (int i=0;i<6;i++)
   {
      cout <<a[i] <<aptr[i] <<*(aptr+i) <<*(a+i) <<endl;
   }
   return 0;
}

運行結果:
5555
3333
4444
1111
2222
6666

根據上面的這段程序,可以知道a[i]、aptr[i]、*(aptr+i)、*(a+i)都能夠訪問到數組的元素。所以,我們說上述四者是等價的。雖然數組名是指針,但它是一個指針常量。也就是說,不帶下標的數組名不能作為左值。

指針數組

指針是一種數據類型,所以,我們可以用指針類型來創建一個數組。聲明一個指針數組的語句格式是:
    指針類型 * 數組名[常量表達式];

對指針數組的操作和對指針變量的操作并無不同,在此不作贅述。

試試看:
如果有兩個大小相同的數組a和b,我們想把數組b的元素都一一復制到數組a中,通過一句a=b;語句是否可以實現?試用本節的知識解釋這一現象。
結論:數組名a和b都是指向數組首元素的指針,所以a=b;并不能把數組b的數據復制給數組a。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博兴县| 潜江市| 四会市| 淄博市| 格尔木市| 华阴市| 伽师县| 黔西| 广昌县| 莒南县| 溧阳市| 南开区| 海安县| 柯坪县| 乐至县| 甘谷县| 东光县| 郸城县| 临湘市| 嘉祥县| 腾冲县| 宾阳县| 阿拉善盟| 永安市| 临海市| 怀安县| 宜都市| 肥东县| 巫溪县| 兴隆县| 蚌埠市| 黔南| 山丹县| 富裕县| 云阳县| 岳西县| 台江县| 阿瓦提县| 嘉鱼县| 沙洋县| 五华县|