先來個簡單的小案例
#include <stdio.h>
#include <iostream>using namespace std;int main()
{int a[10] = { 0 };printf("%d\n", a);printf("%d\n", &a);printf("%d\n", a+1);printf("%d\n", &a+1);printf("%d\n", &a[0]+1);printf("%d\n", sizeof(a));printf("%d\n", sizeof(&a));
}
分析: 打印a和&a的地址是一樣的,那么他們代表是同樣的意思嗎?當然不是了,a是一個數組同時也代表首地址的指針,而&a中的a代表的是整個元素數組的數組,從后面的a+1可以看出,a是首地址指針,+1偏移一個int,而&a+1中,&a代表一整個數組,&a+1偏移一個數組的量,也就是40,所以