首页 > 其他分享 >数组首地址和数组第一个元素地址

数组首地址和数组第一个元素地址

时间:2023-03-22 16:57:16浏览次数:30  
标签:第一个 元素 地址 book 数组 printf

在 写程序的时候,经常会看到数组首地址和数组第一个元素的地址值相同,那么它们又什么区别呢?

这里还是以程序举例:

#include <stdio.h>

int main(void)
{
    char book[50] = {"C Primer Plus"};
    printf("book的首地址:%p\n", book);
    printf("book[0]第一个元素的地址:%p\n", &book[0]);
    printf("book[0]第一个元素的值:%c\n", book[0]);
    printf("\n");

    printf("book:%d\n", sizeof(book));
    printf("&book[0]:%d\n", sizeof(&book[0]));
    printf("book[0]:%d\n", sizeof(book[0]));
    return 0;
}

分析过程:数组名book代表整个数组的首地址(把数组作为一个整体作为单位),&book[0]代表数组中第一个元素(即一个char)的地址(把数组的一个元素作为单位)。
其次,虽然数组首地址和数组第一个元素的地址相同,但数组名book首地址空间是 50,而数组第一个元素的地址空间是 4。当然数组第一个元素的空间是 1 (即一个 char 大小)



结论:

  • 数组名和数组第一个元素的地址相同

  • 虽然地址相同,但地址所表示的内存空间不一样

标签:第一个,元素,地址,book,数组,printf
From: https://www.cnblogs.com/caojun97/p/17243282.html

相关文章

  • 两个数组比较
    一个数组包含另一个数组letarr1=[1,2,3]letarr2=[1,2,3,4,5]functioncontains(arr1,arr2){for(letiofarr1){if(!arr2.includes(i)){false}......
  • java中数组删除
    ListcommonList=newArrayList(); if(commonList.size()>3)//如果数组个数大于3个,则删掉后面的,只剩余前三个{for(inti=3;i<commonList.size();i......
  • 【数据结构】数组与广义表 - 笔记
    数组与广义表的一章相对更为简单,第1,2节都是很熟悉的数组相关定义、实现等。因此这篇博客的讲述重点放在第3节“特殊矩阵的压缩存储”中的“稀疏矩阵”的存储以及第4节“......
  • ip地址
    packageedu.wtbu;importjava.net.InetAddress;importjava.net.UnknownHostException;//测试ippublicclassDemo01{publicstaticvoidmain(String[]args){......
  • C++数组类型中存入结构体类型对象
    最近看Binder机制的时候看到一个unsigned类型数组中不仅可以存放unsignedint类型还可以存放结构体对象,感到十分惊奇,下面我们来看一下uintptr_t类型和指针类型的区别uin......
  • getLocation小程序获取用户地理位置,逆地址解析(位置描述),将经纬度转为省市区的位置描述
    在近期做得一个小程序里要展示当地天气情况,这也就意味着要获取当前位置信息,小程序这边需要getLocation来向用户发起弹窗申请授权获取位置信息。就像下面这样: 不过呢,现在......
  • 百度地图地址转换
    百度坐标谷歌坐标BD-09WGS-84GCJ-02国内的地图坐标并不是实际的坐标,不解释。在实际的实现中可能会需要坐标的转换,比如以下的场景:1,原有的地图数......
  • 视频融合平台EasyCVR获取RTSP和RTMP视频流地址未区分内外网的问题修复
    EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集......
  • 牛客14612 string AC自动机 + 树状数组
    传送门题目大意  有T组测试数据,对于每组测试时局有一个n和m,n表示初始拥有的字符串数量,m表示操作数量。紧接着输入n个字符串,再读入m行操作,每行以xstr的形式给出,如果x为......
  • Leetcode209. 长度最小的子数组
    题目跳转链接滑动窗口解法代码随想录209.长度最小的子数组滑动窗口是一种基于双指针的算法,它可以用于解决一些数组/字符串的子元素问题,例如:找到最长的子数组、最小的子......