首页 > 后端开发 > 正文

C语言中左值和右值的区别 编程入门为什么要先要学C语言

2023-06-26 19:30:20 | 我爱编程网

C语言中左值和右值的区别

C语言中左值和右值的区别

在C语言学习过程中,大家或许听到过左值和右值的概念,甚至在调试程序时编译器也会给出” left operand must be l-value ” 即左操作数必须为左值!,今天我们将为大家详细解释这两个词,以及两者的区别!

简单而言,在赋值运算符“=”左边的就是左值,在赋值运算符“=”后边的就是右值,感觉像是废话,但非常好理解。但更多时候,我们是为了学习和理解不同情况下左值和右值的区别,下面来举例依次说明,着层深入,来让大家解渴!

1.变量做左值和右值的区别:

如 x = 2;

这里x为整形变量,这里作为左值,代表的是一块内存单元,表示的是地址。

再如x = y;

现在看变量做右值情况,y做右值,这里呢就不在表示地址,而是代表该内存单元上的值!然后赋给x。

2.常量做左值和右值的区别:

继续 x = 2;

这里2做右值, 2是一个常量,没有任何疑问。

而如果 1 = 2;

这里我们看左值,是1是常量,这里就会有问题了,编译会报错!因为常量不可被修改、不可以被赋值!所以大家可能会听过或见过”可修改/不可修改的左值”。
我爱编程网

3.数组名做左值和右值的区别:

例如有字符数组char a[100];

当a做右值时候,我们可以把它赋给char *类型的指针,用来指向这个数组,这种情况下数组名做右值代表该数组首元素的首地址,是常量,是完全可以的。

而数组名无论右值和还是左值,都代表是地址,是常量,因此它不可以做左值,因为常量不可被修改!所以不少同学试图再定义数组之后再试图对数组赋字符串都是错误的!

4.字符串常量做右值

字符串常量想必大家都很清楚,是用双引号括起来的字符串,既然也是常量,也理所当然不可以做左值,但做右值呢?

答案是,会表示该字符串在内存中存储位置的首地址。就就是char *  p = “dotcpp.com”;用法的原因。

 

 

以上四种,希望对大家深入理解左值和右值有帮助!大家有任何问题,请随时留言讨论!

编程入门为什么要先要学C语言?



现在学编程的人越来越多,想必要学编程的同学第一个问题就是:那么多编程语言(C、C++、java、php、python、go、ruby等等),到底应该先学哪一个?

笔者的观点很明确:首选C语言!


纵观我国教育课程设置,各大高等院校普遍成熟的课程安排95%以上都是先学C语言(少部分非计算机专业院校安排VB或重点院校直接学C++),往后根据学校培养目标、课程体系需要决定开设C++或java或前端等其他开发语言。近几十年的计算机教育的发展也验证了这个课程安排的科学性。下面通过笔者这些年的感悟谈谈这样设置的好处及原因:


1.C语言本身的特点
语言诞生于上世纪70年代,本身在发明初期就定位为系统级语言,是面向过程编程,是专门为系统开发准备的中级语言,其安全性、效率、跨平台的特点决定了它最符合人们心目中编程语言的样子,加上其主导的特性,好多语言的解释器/编译器甚至新的语言本身都是通过C来改写或直接开发的,足以看出C语言的重要性

2.教学学习需要的安排
语言作为中级编程语言,从靠近机器还是靠近人的分级来看,最适合编程学习,适合奠定人们对程序的第一观念,为今后无论学习解释性语言、还是面向对象的高级语言都有决定性的铺垫作用,这也是很多高校把C语言作为第一门语言的原因

3.学习支持、应用场景多
无论是中学生还是成年人,学习C语言的应用场景都非常多,学习资料支持也非常多、成熟。中学生有NOI/NOIP竞赛、大学ACM、嵌入式开发、计算机二级等无论竞赛、开发、考试都无处不在C语言的影子



以上笔者十多年从业经验的感悟看法,希望对初学还犹豫的你有所帮助!

更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: C++
与“C语言中左值和右值的区别 编程入门为什么要先要学C语言”相关推荐
编程语言python入门要学习哪些?
编程语言python入门要学习哪些?

编程语言python入门要学习哪些?学习python,主要学习ython基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等;之后再进阶学习,如框架等。阶段一:Python开发基础Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等。

2024-01-19 18:01:13
刚入大学,请问计算机二级,Python,c语言,c++,编程分别是什么?
刚入大学,请问计算机二级,Python,c语言,c++,编程分别是什么?

刚入大学,请问计算机二级,Python,c语言,c++,编程分别是什么?计算机二级是一门计算机等级的考试,其中报考的科目可以有好多种,主要分为两种——office和语言,而语言又分成三个大科目——高级语言程序设计,web语言网页开发,数据库程序设计,派森跟C就是其中高级语言程序设计的科目之一。考生只需要在公布的科目里随便报考一个就可。(自行看下图)C和C++的关系,可以看成win7和

2024-02-20 02:24:02
为什么说php是c语言
为什么说php是c语言

php中的几个输出函数1echo();2print();3die();4printf();5sprintf();6print_r();7var_dump();1echo()可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。2print()只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase.print的用法和C语言很像,所以会对输

2025-03-03 06:09:39
为什么说 Python 是最值得学的编程语言?
为什么说 Python 是最值得学的编程语言?

为什么说Python是最值得学的编程语言?Python是一种高级编程语言,它的语法简单明了,易于理解和掌握。Python还有很多的优点,比如开源、社区活跃、应用广泛等等。Python在数据科学、人工智能、Web开发等领域都有广泛的应用,因此学习Python可以为您的职业发展带来更多的机会。Python培训机构哪个好?你好,学习Python编程语言,是大家走入编程世界的最理想选择。

2024-01-03 11:03:46
PHP与C语言的语法有什么不同
PHP与C语言的语法有什么不同

PHP与C语言的语法有什么不同PHP与C语言的语法有什么不同?PHP的基本语法和C是很相似的,可以说大部分编程语言的基本语法都是如出一辙的:顺序、选择(if)、循环(while)。不同之处有变量定义,还有实现的具体细节。但是,php主要是部署网站用的,所以大部分时候是要嵌在HTML语言里面的,并且与JS混合在一起,所以表面看上去很乱,远远没有C语言的单纯。以上是对格式方面的理

2024-09-04 16:58:18
编程入门先学什么?
编程入门先学什么?

编程入门先学什么?编程入门先学C语言或者python。为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以由计算机自动

2024-02-09 09:39:48
PHP和HTML语言有什么区别
PHP和HTML语言有什么区别

PHP和HTML语言有什么区别简单的说,HTML是典型的静态网络编程用语,而PHP则是一种可实现动态的编程语言。简单举例:<?phpecho"<p>Orderprocessedat".date('H:i,jsFY')."</p>";?>在这段代码中,我们使用PHP语言中内置的函数date()来告诉客户其订单被处理的日期和时间。

2024-10-29 14:34:18
在PHP语言中,为什么要引入“函数”这个概念?
在PHP语言中,为什么要引入“函数”这个概念?

php中function函数的用法在PHP中,function是用于定义和声明函数的关键字。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行。通过使用函数,可以将代码模块化,提高代码的可读性、可维护性和重用性。在PHP中,function关键字用于定义和声明函数。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行,

2025-01-04 03:59:21