C: (pointer) 陣列變數和指標的區別
1. sizeof(陣列)=陣列的長度; sizeof(指向陣列的指標)=指標大小4或8
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h> int
main( int argc,
const
char * argv[]) { char
s[] = "hello world!" ; char
*t = s; printf ( "sizeof(s) is %li \n" ,
sizeof (s)); printf ( "sizeof(t) is %li \n" ,
sizeof (t)); return
0; } |
output:
sizeof(s) is 13
sizeof(t) is 8
2. char s[]中的&s等價於s, 同是取char s[]的地址;
而char *t = s中的&t 不等同於 t, 取得是t指標變數本身的地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h> int
main( int argc,
const
char * argv[]) { char
s[] = "hello world!" ; char
*t = s; // &s == s; What is the address of the s array? printf ( "&s is %p \n" , &s); // &t != t; What is the address of the t variable? printf ( "&t is %p \n" , &t); return
0; } |
output:
&s is 0x7fff5fbffa2b
&t is 0x7fff5fbffa20
3. 宣告指標, 記憶體會分配空間, 所以指標可以重新賦值; 而陣列變數和陣列元素公用地址, 所以如果重新賦值, 則產生編譯錯誤.
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> int
main( int argc,
const
char * argv[]) { char
s[] = "hello world!" ; char
*t = s; s = t;
// Error: Array type is not assignable return
0; } |
相關文章
- C語言:陣列和指標的區別C語言陣列指標
- C++ 指標陣列與陣列指標的區別C++指標陣列
- 陣列和指標的問題陣列指標
- C/C++引用和指標的聯絡和區別C++指標
- 陣列指標:a pointer to an array,即指向陣列的指標陣列指標
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- 指標常量和常量指標的區別指標
- 徹底搞清C/C++中一維陣列,二維陣列,指標,陣列指標和指標陣列以及指向指標的指標,行地址和列地址之間的關係C++陣列指標
- C/C++——指向函式的指標和指向函式的指標的陣列C++函式指標陣列
- 深入探索 C/C++ 陣列與指標的奧祕之一:陣列與指標概念剖析C++陣列指標
- 淺議C語言中靈魂陣列和指標的互操作(轉)C語言陣列指標
- 二維陣列的指標的理解陣列指標
- 引用與指標的區別指標
- 詳解c++指標的指標和指標的引用C++指標
- C/C++——宣告一個到字元的指標,包含10個整數的陣列,到包含10個整數的陣列的引用,到字串的陣列的指標,到字元的指標的指標...C++字元指標陣列字串
- 型別的本質:對變數、型別、指標的理解型別變數指標
- 深入探索 C/C++ 陣列與指標的奧祕之二:陣列名是一個指標常量嗎?C++陣列指標
- 陣列指標和指標陣列陣列指標
- systemtap 探祕(三)- 型別、變數和陣列型別變數陣列
- 關於二維陣列指標的問題陣列指標
- 指標 與 陣列 以及 a 與 &a的區別指標陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- Proc中使用char陣列、VARCHAR陣列和char變數進行DELETE操作具體行數的細微區別陣列變數delete
- C語言中指標, 陣列和字串(Pointer, Array and String in C Programming Language)C語言指標陣列字串
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- 指標問題的一點體會(區別 [指向指標的指標] 與 [指標的指標] .) (轉)指標
- C#陣列與集合的區別C#陣列
- 【C】 28_指標和陣列分析(上)指標陣列
- 【C進階】28、指標和陣列分析指標陣列
- C語言指標和陣列基礎C語言指標陣列
- C++語言中陣列指標和指標陣列徹底分析(系列一) (轉)C++陣列指標
- C/C++指向指標的指標C++指標
- 陣列和指標陣列指標
- 指標和陣列指標陣列
- golang切片和陣列的區別Golang陣列
- javascript陣列和物件的區別JavaScript陣列物件
- 成員變數/函式指標的用法 (轉)變數函式指標
- C指標和陣列的關係詳解指標陣列