本文内容摘自《C语言内核深度解析》一书的深入学习数组部分。

以 int buf[100]={0} 为例,集中讨论 buf、buf[0]、&buf[0]、&buf 四个字符含义的内涵。

1、buf:有两层含义,一是数组名,sizeof(buf) 时就是数组名的含义;二是等价于 &buf[0],表示数组的第一个元素的首字节地址,是一个常量值。因此,既然是一个常量值,无论从哪层含义来使用,buf 都不能作为左值来使用,但是,buf 可以用来作为右值来使用,作为右值使用时,应理解为地址。

2、buf[0]:表示存储第一个元素的空间,可对其进行读写操作,所以可以作为左值来使用。

3、&buf[0]:等价于 buf,是一个地址常量,只能作为右值使用。

4、&buf:表示地址的首地址,是一个地址常量,只能作为右值使用。

buf 与 &buf 的值相等,但是含义完全不同。printf("%p\n",buf) 与 printf("%p\n",&buf) 这两条代码的打印结果是相同的,表明它们的值是相同的,但是 printf("%p\n",buf+1) 与 printf("%p\n",&buf+1) 的结果完全不同,因为它们的含义不同,buf 表示数组的第一个元素的首字节地址,加 1 加的时一个元素空间的大小;&buf 表示的是整个数组的首地址,加 1 加的是整个数组空间大小,数组首地址主要用于构建多维数组,对于一维数组来说,数组首地址没有太大的实用意义。

理解一维数组中 buf、buf[0]、buf[0]、buf 四个符号的含义相关推荐

  1. 理解一维数组中buf\buf[0]\buf[0]\buf四个符号的含义

    以 int buf[100]={0} 为例,集中讨论 buf.buf[0].&buf[0].&buf 四个字符含义的内涵. 1.buf:有两层含义,一是数组名,sizeof(buf) ...

  2. C语言试题四十四之移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

    1. 题目 请编写一个函数function,它的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后. 2 .温馨提示 C语言试题汇总里可 ...

  3. 用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]处

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容7]用指针.子函数的方法去一维数组中所有元素的平均值,并放 ...

  4. 一维数组中重复元素的去除

    一维数组中重复元素的去除 前言 一.基本思路 二.步骤 1.设置判断数组Arr[ ]: 2.继承数组newArr[ ]获取不重复元素 总结 前言 关于一维数组中有重复的元素该怎么剔除,作为java初学 ...

  5. 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容13]请编写fun()函数,函数的功能是删去一维数组中相同 ...

  6. 用子函数的方法求一维数组中所有元素之和

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容2]用子函数的方法求一维数组中所有元素之和 #includ ...

  7. C语言 编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中。其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34...该数列除前两项之外,其他任意

    编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中.其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34-该数列除前两项之外,其他任意一项都是相邻的前 ...

  8. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

  9. c语言求100以内整除13的最大,VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中...

    VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看 ...

最新文章

  1. 效率低下?是管理者无能?还是“太宽容”?
  2. 分析 C# 2.0 新特性 -- 范型(Generics)
  3. android 自定义控件
  4. java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...
  5. 146. LRU 缓存机制
  6. 大厂HR年底绷不住了:怎么招程序员这么难,尤其搞这项技术的!!
  7. ASP .NET Controller返回类型
  8. 电影《长津湖》上映7天票房破26亿元
  9. C# 用委托实现Callback
  10. adminLTE的介绍
  11. 语音识别字幕_语音识别字幕软件_自动识别语音生成字幕 - 云+社区 - 腾讯云
  12. 制作U盘启动盘--win7系统
  13. 北航超算运行matlab,北航荣获世界大学生超算总决赛一等奖!超50万亿次,又破世界纪录...
  14. linux应用开发 — 控制LED设备
  15. Android 双RecyclerView嵌套实现购物车逻辑
  16. 干货丨绝地求生—PUBG游戏模型合集
  17. Robin广场舞案例实践分析之深入思考
  18. cloud云技术简介
  19. 计算机数据结构英语作文,计算机-数据结构基本英语(4)
  20. Java实现定时任务方法之Quartz

热门文章

  1. 让多个div并列显示在一行|并列div
  2. 开通香港股票开户需要什么条件?
  3. JJJ-1 early_irq_init
  4. 51CTO博客将于2017年7月完成首页改版(7月11日下午上线啦)
  5. 微信开发者工具---仿支付宝首页
  6. NHB网络心跳丢失的模拟过程分析
  7. 软件交付质量复盘与注意事项
  8. Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型
  9. 计算机音乐管弦乐研究现状,【音乐百科】你是否了解管弦乐与管弦乐团的诞生发展脉络?...
  10. 2011年最犀利语录有哪些“语”出惊人?