美文网首页
数组里面a和&a区别

数组里面a和&a区别

作者: jasonsang | 来源:发表于2016-10-07 09:53 被阅读0次

==================以下为例子=====================


#include <stdio.h>
int main(void) {
    int a[5] = {1,2,3,4,5};
    int *ptr1 = (int *)a;    //数组元素a[0]的地址
    int *ptr2 = (int *)&a;   // 数组的首地址
    int *ptr = (int *)(&a+1);//&a代表整个数组的地址
    printf("(int *)a = %d\n",*ptr1);
    printf("(int *)&a = %d\n",*ptr2);
    printf("*(a+1) = %d\n",*(a+1));
    printf("((int *)(&a+1))-1 = %d\n",*(ptr-1));
    return 0;
}

==================以下为输出=====================


//输出为:
(int *)a = 1
(int *)&a = 1
*(a+1) = 2
((int *)(&a+1))-1 = 5
Program ended with exit code: 0

==================以下为解释=====================


a,&a 的值是一样的,但意思不一样;
a 是数组首元素的首地址,也就是a[0]的首地址;
&a 是数组的首地址,a+1 是数组下一元素的首地址,即a[1]的首地址;
&a+1 是下一个数组的首地址。

查看参考博客请点此

相关文章

  • 数组里面a和&a区别

    ==================以下为例子===================== ============...

  • array、vector和数组

    他们的区别在于array和数组是存储在栈里面的,而vector是存储在堆里面的。array和数组的区别在于,arr...

  • 数组及链表

    数组和链表的区别及优缺点: 数组:有n个数的数组,知道起始位置后直接就能查找到里面的元素 链表:有n个数的链表,知...

  • 集合

    数组和list 区别

  • TUDU

    遍历数组和对象的区别 for in for of map 数组

  • java基础

    HashMap 数据结构 数组 ArrayList和LinkedList的区别实值数组和链表的区别 用连续的存储单...

  • for循环和for in、js数组和对象的区别

    for循环和for injs数组和对象的区别

  • 大数据(架构师)面试系列(5)

    1.数组与链表的区别是什么? 线性表--数组和链表的区别链表和数组的区别在哪里? 2.Scala函数式编程的特点?...

  • 数组和指针

    数组和vector的区别 数组的长度固定。数组不提供size和push_back操作。 数组的操作 用vector...

  • ArrayBuffer和Array区别

    区别: 1、数组里面可以放数字、字符串、布尔值以及对象和数组等,ArrayBuffer放0和1组成的二进制数据2、...

网友评论

      本文标题:数组里面a和&a区别

      本文链接:https://www.haomeiwen.com/subject/yuryyttx.html