指標與位址

2021-08-16 21:01:25 字數 1183 閱讀 6587

1.

#include

int main(int argc, const char *argv)

;這是乙個指標陣列,裡面所有的元素都是指標,但這裡的指標是乙個位址常量,比如「aaaaa」本身就是乙個位址

直接使用%p,就可以列印出這一固定的位址值。

printf("%p %p\n","aaaaa","bbbbb");

printf("%p %p\n",cnames[0],cnames[1]);

或者,因為陣列裡面的變數就是指標,所以直接列印陣列裡的元素,就是列印出位址值。

int a[3]={};

printf("%p",a);在這裡,a本身就是乙個位址,不用再加&,可以得出陣列a的首位址

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

return 0;

2.不只是陣列的變數名稱代表位址,函式的變數名稱也代表該函式的首位址,也就是函式的入口

#include

int sum(int i,int j)

int main(int argc, const char *argv)

;char a="abc";當使用字串給字元陣列賦值的時候,系統以單個字元的形式儲存起來,並且自動加入『/0』,跟一般的字元陣列做以區分。

char* p;

p=a;*(p+4)=?

既然是以單個字元的形式儲存起來,且指標以乙個位元組為單位移動,所以當指標移動四個單位時,指標指到\0的位置。

char* a=;

printf("%p",a);

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

a作為字元陣列的首位址,可以直接用%p列印出來

也可以獲得a[0]的位址,列印出來

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

printf("%p\n","hello");

a[0]本身作為乙個位址常量,可以列印出來

而這個「hello"作為這個位址常量,也可以直接列印出,且兩者值相等。

char a=;

printf("%p",a);

printf("%s",a);

在列印字串的時候

char a="hello";

printf("%s",a);

a作為字串的首位址,直接列印出來的是字串。

而a作為字串的首位址,可以直接以%p的形式列印出來該字元陣列的首位址。

指標與指標位址

int urn size urn 0 100 urn 1 200 urn 2 300 urn 3 400 urn 4 500 int ptr1,ptr2,ptr3 ptr1 urn ptr2 urn 2 printf 當前指標的值和位址 printf ptr1 p,ptr1 d,ptr1 p n p...

指標與位址之位址與變數

一.int a 10 1 int 代表的是資料型別,其標識的資料儲存為整形型別,預設帶有乙個unsigned 代表在記憶體當中申請 4位元組空間 2 a 是乙個對映符號 用於標記儲存該記憶體的資料位址,其在變數表中定義 a 0x7fffacd23bae 4 int b 0x7fffacd23bae ...

C 指標與位址

指標是一種儲存變數位址的變數,存放在一組連續的儲存單元中 通常是2或4個,後者居多 因為c語言本身的feature就很少,加上指標又非常的高效,指標已然成了c最大的特點。與指標相關的操作符有兩個,分別為 解引用 和 取位址 解引用這個詞比較令人費解,比方存在指標p,p c p中便儲存了 c 的位址,...