數值名,陣列首位址,陣列指標

2021-09-30 06:38:31 字數 753 閱讀 5968

這幾天上陣列與指標時,對於這三個概念一直都很模糊。什麼位址常量不可以運算,什麼指標加一就是加四個位元組等等...

1.#include

int main(void)

結果是48,4,4,12,4

2.#include

int main(void)

,*p=a,i;

printf("%p/n",&a);

printf("%p/n",&a+1);

printf("%p/n",&a[0]);

printf("%p/n",&a[0]+1);

printf("%p/n",&a[1]);

getchar();

}結果是0022ff20,0022ff34,0022ff20,0022ff24,0022ff24,

3.#include

int main(void)

;p=a ;

printf("%d/n",*p++);    //ok  

printf("%d/n",*a++);    //error

printf("%d/n",*(0x0022ff38));//error

getchar();

}結果 編譯出錯:error1: iso c++ forbids cast to non-reference type used as lvalue 。non-lvalue in assignment

error2: invalid type argument of `unary *'

陣列名,陣列首位址,a, a, a 0

1 指標陣列 是陣列,但陣列中的每個元素都是指標 int p 5 如p 2 是指標,可 p 2 3 2 指向陣列的指標 是個指標,但它指向的是乙個陣列 int a 5 int p 5 與前一行比較,p相當於a,即p a 就像 int m int pm pm就相當於m.pm m p a 可與前一行合併...

陣列名,陣列首位址,a, a, a 0

1 指標陣列 是陣列,但陣列中的每個元素都是指標 int p 5 如p 2 是指標,可 p 2 3 2 指向陣列的指標 是個指標,但它指向的是乙個陣列 int a 5 int p 5 與前一行比較,p相當於a,即p a 就像 int m int pm pm就相當於m.pm m p a 可與前一行合併...

陣列指標和陣列首位址

下面 會輸出什麼 1 2 3 4 5 6 intmain intargc,char argv int ptr int a 1 printf d ptr 1 答案 4 解析 這邊主要考察的是陣列指標和陣列首位址的問題。a是陣列指標,a是陣列首位址。而指標的 1,增加的是1個指標型別的長度。比如 a是陣...