天天看點

C++ 數組指針與普通指針的辨析

首先看幾個變量:

char s[3][4];
char (*k)[3];
char *p;
           

首先s是一個二維數組,s本身可以當作一個指針,指向二維數組的第一個元素,也就是第一個一維數組,其中包含4個元素;

k是一個指向包含3個元素的數組指針;

p是一個指向單個變量的指針。

是以s指向的數組包含了4個元素,k指向的數組包含了3個元素,p指向的對象包含了1個變量。

s+1意味者指針s走過了4個char機關

k+1意味者指針k走過了3個char機關

p+1意味者指針p走過了1個char機關

注意指針并不僅僅是一個位址,這三個指針之間的指派等操作是不被允許的,因為他們的類型不同。

指針的類型不僅僅是其指向的元素的類型,還含包括指向元素的大小。

繼續閱讀