码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 数组

时间:2016-06-29 17:17:06      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
using namespace std;
/**
 * 从结果中可以看出,&a、a、&a[0]表示的是同一地址,但是级别是不一样的。
   &a+1地址与&a相比,偏移了12个字节,即声明数组的空间大小;
   a+1地址与a相比,偏移了4个字节,即数组中一个元素的空间大小;
   &a[0]+1地址与&a[0]相比,偏移了4个字节,即数组中一个元素的空间大小;
       也就说&a、a、&a[0]虽然都表示同一地址,但是编译器会区分它们,&a指向整个数组的地址,
       是数组中最高级别的地址,而a和&a[0]表示&a代表地址的下一级别的地址。
 */
int main() {
    int a[3] = { 1, 2, 3 };
    cout << &a << endl;      // &a 取地址
    cout << a << endl;       // a 取地址
    cout << &a[0] << endl;   // &a[0] 取地址
    cout << a[0] << endl;    // 指的是下标为[0]的数组的内容
    cout << &a + 1 << endl;  // &a+1 偏移了12个字节,即声明数组的空间大小;
    cout << a + 1 << endl;   // a+1地址与a相比,偏移了4个字节,即数组中一个元素的空间大小;
    cout << &a[0] + 1 << endl; // &a[0]+1地址与&a[0]相比,偏移了4个字节,即数组中一个元素的空间大小;
    cout << a[0] + 1 << endl;   // 指的是下标为[1]的数组的内容
    system("pause");
    return 0;
}

 

C语言 数组

标签:

原文地址:http://www.cnblogs.com/H-BolinBlog/p/5627520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!