zoukankan      html  css  js  c++  java
  • a &a &a[0]之间的区别和联系

    数组中,a为数组的首地址,&a[0]为数组第一个元素的地址。

    所以 a == &a[0]

    但是,&a又是什么东西呢?


    我们来做下面的代码测试:

    #include <stdio.h>
    
    void main(void){
        
        int a[5] = {0};
    
        printf("a---------->%p
    ", a);
        printf("&a--------->%p
    ", &a);
        printf("&a[0]------>%p
    ", &a[0]);
    
        printf("
    after changed
    
    ");
    printf("a+1-------->%p ", a + 1); printf(
    "&a+1------->%p ", &a + 1); printf("&a[0]+1---->%p ", &a[0]+1); }

    打印出的结果为:

    a---------->004DF870
    &a--------->004DF870
    &a[0]------>004DF870
    
    after changed
    
    a+1-------->004DF874//值增加了4,为一个int类型长度,则此地址为数组的第二个元素地址
    &a+1------->004DF884//值增加了20,为五个int类型长度,则此地址为数组结束后的下一个元素地址
    &a[0]+1---->004DF874//值增加了4,同a+1

    虽然结果中 a == &a == &a[0]  ,但是这三个值的意义不一样

      结论:

    • a         表示数组元素的首地址,同时也可做为数组的指针使用
    • &a       表示整个数组的首地址
    • &a[0]   表示数组第一个元素的地址
  • 相关阅读:
    数据库
    用hosts管理IP和域名
    软件测试周期
    jdk安装、环境配置
    IntelliJ IDEA 下载、安装、破解及卸载
    Servlet线程
    servlet什么时候被实例化?【转】
    JSP转译成Servlet详细过程【转】
    电脑使用--快捷键等【转】
    api大全
  • 原文地址:https://www.cnblogs.com/zhiyishou/p/4059902.html
Copyright © 2011-2022 走看看