逐步分析,下面是一段验证这个问题的代码:

#include<stdio.h>
int main()
{   int a[10];   printf("a:\t%p\n", a);            printf("&a:\t%p\n", &a);          printf("a+1:\t%p\n", a+1);        printf("&a+1:\t%p\n", &a+1);     return 0;
}

a和&a指向的是同一块地址,但他们+1后的效果不同,a+1是一个元素的内存大小(增加4),而&a+1增加的是整个数组的内存大小(增加40)。既a和&a的指向和&a[0]是相同的,但性质不同!

总结:
其实a和 &a结果都是数组的首地址,但他们的类型是不一样。

a表示&a[0],也即对数组首元素取地址a+1表示首地址+sizeof(元素类型)。

&a虽然值为数组首元素地址,但类型为:类型 (*)[数组元素个数],所以**&a+1大小为:首地址+sizeof(a)。**

应该在了解数组名即是数组的首地址的同时,也要知道,数组名仅仅是“相当”于指针,而并非真的是指针,数组名只是个常量(一个值为数组首元素地址的常量),所以不能进行++或者–运算。而常量更是无法取地址的,而之所以有&a,其实这里的a的意义早已经不是当初那个数组名了,它此时代表了整个数组。

C语言的一维数组名和对数组名取地址相关推荐

  1. 【C语言】一维数组排序(函数,数组和循环结构语句)

    编写程序,实现一维数组排序.对一维数组按照从小到大的顺序排序.程序定义函数sort()来实现数组a的排序.函数原型如下: void sort(int a[], int n); 数组元素的输出调用Pri ...

  2. 【C语言进阶深度学习记录】二十八 数组指针与指针数组的分析

    数组指针与指针数是非常重要的概念.面试中也是经常会被问到的 文章目录 1 数组的类型 1.1 定义数组的类型 2 数组指针 2.1 数组类型和数组指针的代码分析 3 指针数组 3.1 指针数组代码案例 ...

  3. 【C语言】sizeof(数组名),包括 一维数组、字符数组、二维数组

    目录 1. 数组名.sizeof(数组名).&数组名 2. 一维数组的sizeof() 2.1 整型数组的sizeof() 2.2 字符数组的sizeof() 2.3 字符串赋值给字符数组的s ...

  4. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  5. c语言用一维数组求字符串,c语言一维数组练习题.doc

    c语言一维数组练习题 精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言一维数组练习题 4.1内容概述 本章主要介绍了数值数组和字符数组的 ...

  6. C语言从青铜到王者——数组详解总结【一维数组、二维数组、字符数组、数组实例】

    所谓数组,是指将那些具有相同类型的.数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式.数组属于一种构造类型,其中的变量被称为数组的元素.数组元素的类型可以是基本数据类型,也可以是特殊类型 ...

  7. C语言中的一维数组和二维数组

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344394 一 ...

  8. c语言设计一维数组,一维数组 (1)C语言程序设计.pdf

    C语言程序设计 一维数组 C语焉不详 内容提要 1 一维数组的定义 2 一维数组的初始化 3 一维数组的引用 怎样学好C语言? 引例 [案例]从键盘上输入某学科竞赛组6名成员的 成绩(整数),求平均成 ...

  9. C语言中的数组名取地址

    今天看到这样一道题目,有点懵,记录一下 c语言中的对数组名取地址是什么意思? c中对数组名取地址,实际得到的是指向该一维数组的指针,对于上述题目中的&arr,表示指向一维数组arr的指针,*( ...

最新文章

  1. 黄学东出任微软全球人工智能首席技术官,从负责语音技术到微软Azure云的转身
  2. css通配选择符用什么表示,css的选择符
  3. 固态器件理论(11)超导设备
  4. ise仿真添加信号_西门子TIA+PLCSIM+MCD,构建自动化仿真系统
  5. 在请求和响应中使用 XML
  6. 亚伦•斯沃茨:怎样有效利用时间
  7. Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt问题的解决
  8. STL中empty()函数的误用
  9. 滴滴春节期间加强司机安全教育 考核通过才能上岗
  10. 指针常量、常量指针和常量指针常量
  11. Python 之 游戏飞机大战项目实现
  12. 创建连接数据库(DBLink)
  13. 操作系统形式化验证实践教程(1) - 证明第一个定理
  14. .mcs与.bin文件格式有什么区别?
  15. 浅谈,盘点历史上有哪些著名的电脑病毒,80%的人都不知道!
  16. Manacher算法(马拉车算法)
  17. VC++使用管道重定向进程输入输出(附源码)
  18. 广东第一高中生_前广东第一高中生!曾打爆职业球员!一米八的他还能风车暴扣!...
  19. 计算机专业研究生的英语复试
  20. 一个学习FreeBSD不错的中文网站

热门文章

  1. 来聊聊软件测试-静态测试
  2. 安卓Launcher 简介
  3. 暑期实训二20220621
  4. MATLAB与ROS联合仿真(慕羽)虚拟机镜像文件使用方法
  5. 强化学习初探 DQN+PyTorch+gym倒立摆登山车
  6. 美元指数对黄金市场行情有哪些影响
  7. 创建最大堆、最小堆、图解堆排序
  8. matlab 生命游戏(可调节代数,存活条件,繁殖条件)
  9. USACO-Tea Time
  10. Matlab笔记(台大郭彦甫14课)