對陣列首位址的一些理解

2021-05-12 20:30:32 字數 575 閱讀 9426

首先來看這樣的一些**:

得到的的結果是很奇怪,,cout<(a)《我一直的理解是a其實是個變數,他的值是指向陣列int a[4]的指標,現在我發現這樣的理解是錯誤的,趕緊google了一下,才發現原來a其實是很多層含義的

首先a不應該看成是變數,確切的他應該是乙個指標常量,

其次a與&a是兩個不同的含義,看以下**:

inta[

10];

//以下說明a雖然列印為陣列首位址,但它指向的是陣列首元素,其真實的型別應該是乙個int*const

int*

constp =

a;//

以下說明&a雖然也列印為陣列首位址,但它指向的是整個陣列,其真是型別應該是int(*const )[10]

int(

*const

p)[10] =

&a;(以前看的書很常有那麼一句int a[4] a其實就是陣列首個元素的指標,不知道是我理解有問題,還是教科書誤導我)

參考**:http://topic.csdn.net/u/20090320/09/c71cc99b-d4cc-49c9-a657-fc9b315c4967.html

OpenCV 對陣列(矩陣)的一些操作

opencv operations on arrays 對陣列 矩陣 的一些操作 function 函式名 use 函式用處 add 矩陣加法,a b的更高階形式,支援mask scaleadd 矩陣加法,乙個帶有縮放因子dst i scale src1 i src2 i addweighted 矩...

陣列的首位址

char arrgs hello printf arrgs x n arrgs x n arrgs,arrgs arrgs bfad0046 arrgs bfad0046 printf arrgs x n arrgs x n arrgs 1,arrgs 1 arrgs bf9e0997 arrgs ...

陣列指標一些理解

printf d p 注意此處是先進行後面的運算p printf d p printf d n p i 此時指標就相當於陣列名 printf 2d p 如果陣列是a 6 則應該列印 printf 2d a 0 與上結果 1 a 是陣列首元素的位址,所以 a 的值和 a 0 的值相同,另一方面,a 0...