本文目錄一覽:
C語言中數組首地址和數組第一個元素的地址有什麼區別呢
C語言中數組首地址和數組第一個元素的地址關係如下:
1、它們的地址值是相等的。
2、第1個元素的地址如果是p,則p+1就是第2個元素的地址。
3、數組的首地址如果是p,則p+1就跳過這個數數組而指向這個數組最後一個元素最後一個位元組的下一位元組。
擴展資料:
數組的創建:在創建數組時,我們必須定義數組的類型和大小,數組的大小不能為0,數組中的元素類型都是相同的。
數組的初始化:在數組創建時,我們也要必須為數組初始化。
一個數組,可以保存一些數據,但是每一個數據不一定有用。或者說,有些時候的數組的數據不一定要輸出,所以我們可以再來開一個相同的數組,來標記模擬是否輸出數組中的某個元素。
參考資料來源:百度百科-數組
參考資料來源:百度百科-c語言
C語言中怎麼輸出數組的首地址
%p
直接用16進位地址形式輸出地址
%d
把地址直接用10進位形式輸出
char
a[]
=
“hellow
C++”;
int
b[]
=
{0x01,0x02,4,0×08,0};
如上數組如下輸出都可以:
printf(“十進位地址%d
十六進位地址%p”,
a,
a);
printf(“十進位地址%d
十六進位地址%p”,
b,
b);
printf(“十進位地址%d
十六進位地址%p”,
a[0],
a[0]);
printf(“十進位地址%d
十六進位地址%p”,
b[0],
b[0]);
C語言中的首地址是什麼意思
比如一個對象/數組之類的佔用很多位元組的內存,它佔用的第一個內存的地址就是首地址了。例如char s[16]從0x1到0x10,首地址就是s[0]的地址也就是0x10
C語言中如何指定數組的首地址在指定的地址
據我所知,創建數組需要2個參數,1是地址,2是分配空間。空間分配是不能重複的,也就是說創建2個數組,這兩個數組是不可能重合的,為了防止這種事情出現,所以不能指定地址。而是編譯器自動分配,不能人為。
但是可以省去分配空間這個步驟,而是只創建地址,這就是指針的概念。比如int a[12],你若是想創建另一個代替a[12],可以int *p=a;這樣,p的值就是a數組的首地址了。int *p =(int*)0x80000;意思就是p[0]的地址是0x80000,創建的時候要確定(int*)0x80000已經分配過了,可以使用了,不然就相當於野指針,容易出錯。
C語言首地址問題
數組的首地址就是數組名, a[i]表示數組第i個元素對應的值, a[i]表示取數組第i個元素的「位置」也就是地址。只有a才是首地址,a[i]是說取數組第i個元素的地址,他是地址但不是數組的首地址喔。我們說的首地址是數組首個元素的地址,因為a等價於a+0等價於a[0],因此a才是數組首元素的地址。
scanf(“%d”, a)就表示了取地址的地址,變成了所謂的「二級」地址。 a和a+0等價,也就和a[0]等價,表示取數組第0個元素的地址,注意它是一級地址,所以不報錯。當然你可能不知道什麼是一級地址,二級地址。如果「地址」前面添加表示取地址的地址,你可以簡單認為是個二級地址。因為學到指針變數時,會出現多級指針,數組指針等變態用法。學到後面你就知道了。
正確的寫法是:
scanf(“%d”, a );
scanf(“%d”, a[i])
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230444.html