c++指针和数组
之前應該也寫過類似的博客,今天又碰到類似的題目,又做錯了,看來當時就沒有透徹明白。
int a[10] = {0}; int (*b)[10] = &a; int** c = reinterpret_cast<int**>(&a); std::cout << a << std::endl<<&a<<endl<<&a[0]<<endl; std::cout << c << std::endl; std::cout << b << std::endl; std::cout << **b << std::endl;output:
0024FEC8
0024FEC8
0024FEC8
0024FEC8
0024FEC8
0
為什么a的值和&a的值是一樣的呢?
首先a表示數組第一個元素的地址,也就是這個數組的起始地址。
a是一個數組,&a表示這個數組的地址,也就是數組的起始地址。
雖然a和&a的值一樣的,但是表示的意義不一樣,a+1表示這個數組第二個元素的地址,而&a+1表示下個數組的地址
總結
- 上一篇: linux脚本--输出占用内存最多的进程
- 下一篇: s3c2440移植MQTT