指標與指標位址

2022-08-05 12:30:21 字數 1681 閱讀 5528

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",ptr1,*ptr1,&ptr1);

ptr3 = ptr1 + 4;

printf("ptr1 + 4 = %p, *(ptr1+4) = %d\n",ptr1+4,*(ptr1+4));

ptr1++;

printf("ptr1++, ptr1 = %p, *ptr1 = %d, &ptr1 = %p\n",ptr1,*ptr1,&ptr1);

ptr2--;

printf("ptr2--, ptr2 = %p, *ptr2 = %d, &ptr2 = %p\n",ptr2,*ptr2,&ptr2);

--ptr1;

++ptr2;

printf("--ptr1,++ptr2, ptr1 = %p, *ptr1 = %d, ptr2 = %p, *ptr2 = %d\n",ptr1,*ptr1,ptr2,*ptr2);

printf("ptr2 - ptr1, ptr2 = %p, ptr1 = %p, ptr2 - ptr1 = %d",ptr2,ptr1,ptr2-ptr1);

printf("ptr3 = %p, ptr3 - 2 = %p\n",ptr3,ptr3-2);

ptr1 = 0x7fff5fbff820,    // ptr1 指標中保持的值是:0x7fff5fbff820,它是urn陣列的首位址。

*ptr1 = 100,        // ptr1 儲存的變數的值

&ptr1 = 0x7fff5fbff818   // ptr1 是指標型別的變數,它在記憶體中的位址是:0x7fff5fbff818

ptr1 + 4 = 0x7fff5fbff830, *(ptr1+4) = 500

ptr1++, ptr1 = 0x7fff5fbff824, *ptr1 = 200, &ptr1 = 0x7fff5fbff818

ptr2--, ptr2 = 0x7fff5fbff824, *ptr2 = 200, &ptr2 = 0x7fff5fbff810

--ptr1,++ptr2, ptr1 = 0x7fff5fbff820, *ptr1 = 100, ptr2 = 0x7fff5fbff828, *ptr2 = 300

ptr2 - ptr1, ptr2 = 0x7fff5fbff828, ptr1 = 0x7fff5fbff820, ptr2 - ptr1 = 2   // 說明ptr2 和ptr1之間有2個int的距離

ptr3 = 0x7fff5fbff830, ptr3 - 2 = 0x7fff5fbff828  // 指標減去整數,指標位址改變。

指標與位址

1.include int main int argc,const char argv 這是乙個指標陣列,裡面所有的元素都是指標,但這裡的指標是乙個位址常量,比如 aaaaa 本身就是乙個位址 直接使用 p,就可以列印出這一固定的位址值。printf p p n aaaaa bbbbb printf...

C 指標與位址

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

指標與位址之位址與變數

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