在C/C++中,數組名相當於一個指針,指向數組的首地址。這里“相當於”不代表等於,數組名和指針還是有很多區別的,這個在《C陷阱與缺陷》里有詳盡的講述。而這里要說的是對於數組名取地址的這么一個操作。 如果聲明有如下數組: 那么,&arr這個操作得到了什么值呢? 如果簡單 ...
C語言規定,數組名代表數組的首地址,也就是第 號元素的地址。所以a amp a 但對數組名取地址時卻要注意了,在理解 對數組名取地址 這一表達式的含義時一定要記住:數組名是 數組 這種變量的變量名 這樣, amp a就好理解了,它取的是 數組 這種變量的地址 amp a 自然也就要跨過整個數組,所有元素長度總和,這么長的一個長度。例如:int a ,那么 amp a 就要跨過 個int的長度 詳細 ...
2015-03-26 20:20 0 5937 推薦指數:
在C/C++中,數組名相當於一個指針,指向數組的首地址。這里“相當於”不代表等於,數組名和指針還是有很多區別的,這個在《C陷阱與缺陷》里有詳盡的講述。而這里要說的是對於數組名取地址的這么一個操作。 如果聲明有如下數組: 那么,&arr這個操作得到了什么值呢? 如果簡單 ...
相信不少的C語言初學者都知道,數組名相當於指針,指向數組的首地址,而函數名相當於函數指針,指向函數的入口地址。現在又這樣一個問題,如果對數組名取地址,那得到的會是什么呢?很多人立刻會想到:給指針取地址,就是指針的指針,既二級指針嘛!當然這樣的結論是錯誤的,不然這篇筆記也就沒有意義 ...
#include <stdio.h> int main() { int a[5]; printf("%d\n", a); printf("%d\ ...
以下代碼會打印出什么樣的日志呢? [cpp] view plain copy ...
一,首先我們先分析下數組名和數組名取地址的區別。 我們都知道數組名是數組的首地址,然而對數組名取地址又是什么那?看下面一段程序你就會懂的。 #include "stdafx.h" #include<stdio.h> using namespace ...
目錄: 1. 開篇 2. 論數組名array、&array的區別 3. array、&array的區別表現在什么地方 4. 討論 5. 參考 1.開篇 很多博客和貼吧都有討論這個話題,各有自己的表述方式,今天在他們的基礎上我將繼續試着以我自己理解的方式總結一下,歡迎大家的審閱和指評 ...
第二個為指向數組的指針. a只是a[0]的地址,a+1就是a[1]的地址了, &a是整個a[10]的首地址,是以整個數組為角度來看,雖然它與a[0]的值相同,但是&a+1就已經增加了10個int類型的字節的長度了. 本機 ...
的指針 下面從一維數組說起:(定義:int a[4]) (1)一維數組名a是個地址,地址類型為 ...