C++ 数组指针与普通指针的辨析

来源:互联网 发布:c语言获取当前时间戳 编辑:程序博客网 时间:2024/05/16 10:07

首先看几个变量:

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单位


注意指针并不仅仅是一个地址,这三个指针之间的赋值等操作是不被允许的,因为他们的类型不同

指针的类型不仅仅是其指向的元素的类型,还含包括指向元素的大小。

1 0