当前位置: 首页 > article >正文

C语言深度剖析:定义与声明

一、铺垫

我敢于诸君打赌,定义与声明,诸君肯定都会,但是绝对说不清123;因为我在学校里学习的时候;也是不知其所以然;直到自己遇见了一位老师,看了《C语言深度剖析》这一本书;

二、阐述

我们在学习C语言或者C++时,都会听到一个概念,叫做“左值、右值”;在写程序时,会看到编译器报错:左值不能为0等等;(C++的移动构造,诸位看吧,一看一个不吱声;)

int x=10;

左值:指的是空间,指的是属性,无法随意更改的叫左值(等号左边 x)

右值:指的是内容(等号右边 10)

左值: x的空间

右值: x的内容

 举例:

int x=10;  以例子来说明定义与声明 

定义:告诉编译器,创建1个空间(分配一块内存),这个空间的名字叫做x,里面放了一个值叫10;且名字x是唯一的,只能有一个x;

extern int x;

声明:第一种含义:告诉编译器,我要使用一个变量,这个变量名字叫x;其他人不能使用这个变量名;当程序员,给他赋值时(x=10),才会开辟空间;

第二种含义:告诉编译器,这个名字已经匹配到一块内存上了,下面的代码用到变量或对象是在别的地方定义的。

以上的解释,如果诸君明白了,就会认为声明比定义的实际价值更大;因为声明有两种含义,而定义只有一种;想更清楚的理解:只能在Linux编程的环境变量、网络编程的调用URL(URI)的代码中理解;

其他人就会问,如何区分定义与声明呢?

答:使用extern关键字;来区分;

解释:由于现代编译器的强大,不使用extern关键字也是声明;所以导致了程序员不会特意区分声明与定义;间接导致extern关键字被砍了一刀;

extern int x;        //声明

int x;                //声明

int x=10;        //定义;

如果诸君学过Linux编程的环境变量、网络编程,extern关键字在其中起到了重要的作用,他会从URL中使用HTTP的get方法,获取关键信息;来支持浏览器后台的解析;


http://www.kler.cn/a/405709.html

相关文章:

  • 游戏引擎学习第20天
  • 在 Taro 中实现系统主题适配:亮/暗模式
  • 在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
  • 【Linux内核深度解析】TCP协议栈之tcp_recvmsg
  • 开源许可协议
  • [Realtek sdk-3.4.14b] RTL8197FH-VG新增jffs2分区操作说明
  • Go-RPC关键指标分析与企业实践
  • Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失
  • 金融量化交易模型的突破与前景分析
  • PostGIS创建空间数据库步骤
  • .net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
  • 中国省级新质生产力发展指数数据(任宇新版本)2010-2023年
  • 单词的分类(二)冠词和数词
  • ANSYS HFSS仿真回流路径与跨分割布线
  • Go语言使用 kafka-go 消费 Kafka 消息教程
  • QA|使用 MapleSim 模拟卷料生产 (Converting)和卷对卷系统 (R2R)
  • Paper -- 洪水深度估计 -- 基于计算机视觉, 根据被淹车辆图像进行洪水深度估计
  • nginx 配置lua执行shell脚本
  • Linux ASLR
  • 【数据结构】—— 树
  • 从 HTML 到 CSS:开启网页样式之旅(开篇之一)——CSS 初体验与网页样式新征程
  • HTML 元素详解
  • 标贝科技:自动驾驶中的数据标注类别分享
  • 物联网研究实训室建设方案
  • Nuxt3:拉取项目模板失败问题解决方法
  • 【自动驾驶】数据集合集!