久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - c/c++ 指針指向 數(shù)組和數(shù)據(jù)類型 判斷時(shí)會(huì)不會(huì)有二義性?

瀏覽:163日期:2024-01-04 16:18:28

問題描述

int dd=1;int *a=ⅆ // 1int *c=new int[2]; //2這里1說明a是int 類型的指針,2說明c是int數(shù)組類型的指針.對(duì)不?這段數(shù)據(jù)結(jié)構(gòu)代碼

java - c/c++ 指針指向 數(shù)組和數(shù)據(jù)類型 判斷時(shí)會(huì)不會(huì)有二義性?

兩個(gè)理解:1.rowlist是個(gè)動(dòng)態(tài)數(shù)組指向一大塊內(nèi)存,數(shù)組里的元素存儲(chǔ)著指向LinkList<int>鏈表的地址。即rowlist是指針數(shù)組。如圖一

2.rowlist指向一個(gè)內(nèi)存,這個(gè)內(nèi)存存儲(chǔ)著<LinkList< int > * >類型的指針,即rowlist是指針的指針。如圖二

java - c/c++ 指針指向 數(shù)組和數(shù)據(jù)類型 判斷時(shí)會(huì)不會(huì)有二義性?

感覺兩個(gè)都可以,是要看具體實(shí)現(xiàn)嗎。比如rowlist=new ...是采用第一種?

問題解答

回答1:

int dd=1;int *a=&dd; // 1int *c=new int[2]; //2

題主說:

這里1說明a是int 類型的指針,2說明c是int數(shù)組類型的指針.對(duì)不?

并不是這樣的,a和c其實(shí)是同一個(gè)東西,他們是指向int的指針。c并不是“int數(shù)組類型的指針”。

為什么c本來是一個(gè)int指針,但實(shí)際上它卻可以指向一個(gè)int數(shù)組呢?因?yàn)閕nt數(shù)組賦值給int指針的時(shí)候,C語言偷偷把它(int數(shù)組)轉(zhuǎn)換成了該int數(shù)組的首元素,這個(gè)“偷偷轉(zhuǎn)換”的專業(yè)名詞叫“隱式轉(zhuǎn)換”。

所以總結(jié)一下:

變量c不是int數(shù)組類型的指針,而是int類型的指針;

那為什么變量c竟然可以指向int數(shù)組呢,是因?yàn)槠渲邪l(fā)生了隱式轉(zhuǎn)換;

回答2:

int *c=new int[2]; //2

c就是指向int的指針。指向數(shù)組的指針應(yīng)該寫成

int (*c)[2]=new int[2];

指針+1 會(huì)走幾個(gè)字節(jié)呢?試一試。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 湖南省| 蓬安县| 阆中市| 江都市| 师宗县| 兴宁市| 渝北区| 松阳县| 油尖旺区| 旬邑县| 双峰县| 墨江| 重庆市| 德化县| 永善县| 桑植县| 兰西县| 广丰县| 平利县| 高清| 阜南县| 余干县| 巫溪县| 日土县| 子长县| 彰化市| 嘉峪关市| 大厂| 江达县| 黔西县| 彭阳县| 敦煌市| 北海市| 龙南县| 密山市| 桑日县| 榆树市| 吐鲁番市| 宁阳县| 紫阳县| 贵溪市|