C51单片机C语言的基本规则

时间:2023-03-05作者:佚名
C51C语言的基本规则是有限的,可把这有限的规则组合与嵌套起来,就实现了多种多样的功能。
  常量与变量本质是值,不同的变量只是存储结构的不通。表达式最终也是一个值,所以可以通用,可以嵌套。
  指针变量存放的是地址。数组名不是变量,而是地址常量。数组是相同结构的变量的集合。数组指针与数组名可以通用。
  从本质上来说,没有多维数组的存在。因为c语言允许数组元素可以为任何类型的对象,可以是整型变量,字符型变量,结构体变量,当然也可以是数组。所以,多维数组无非就是一维数组的嵌套而已。掌握了这一点,就可以理解二维数组名可以看作是指向指针常量(一维数组名)的指针常量。就这样一路指下去,一直指到底才是变量名。
  结构体(structure),与数组不同的地方就在于,数组必须是同一类型变量的集合,数组是编译系统默认好的一种构造类型数据,而结构体类型需要自己声明,至于存放什么类型的成员,都是自定义的。结构体类型的成员,与数组的成员一样,是可以为任何类型的对象,包括数组和结构体类型。这里也体现了嵌套的优越性。声明了结构体类型,需要定义结构体类型变量。结构体类型名与变量名的区别,就不用多说了,不能因为结构体是自定义类型,就把类型名当作变量来看待。
  结构体变量同样是变量,同其他类型变量一样,可以在声明或定义的同时进行初始化,或者分开进行。与数组名不同的是,结构体变量名不是指针常量,所以相同结构体类型的结构体变量之间可以相互直接赋值,而数组名则不可以。
  c中有字符串类型常量,但是没有字符串类型的变量。字符数组使用嵌套的办法,把一串字符组合成字符串,在c中充当字符串变量的作用。为了使用中的方便,c运行在声明字符数组时用字符串为字符数组初始化,在标准输入输出中,也同样提供了%s格式输入输出以及其他输入输出函数进行字符串的操作。相比较而言,数值数组就没有这么幸运,输入输出必须一个一个变量(元素)的进行。对于字符串的处理,字符指针同样可以,c规定,把字符串常量赋给一个字符指针,就是把这个字符串常量的首地址赋给了这个指针,很明显,这个字符指针实际上变成了一个字符数组,只不过界限不明朗。
  数组与指针的等价关系,提供了很多方便。但是缺点也是有的。首当其冲的就是数组之间不能直接赋值,哪怕是相同类型相同大小的数组之间。因为数组名是指针常量,哪有常量与常量赋值的道理?(提醒一下,数组名在个别时候并不代表数组首地址,而是代表整个数组,比如sizeof(数组名),这里就不能把数组名理解为指针常量了)。第二个缺点,那就是指针的操作无法检查溢出。你定义了一个指针指向一个数组,然后进行指针的运算,数组是有大小有界限的,可是指针无法判断是否超出了你定义的数组范围。这样,一旦指针溢出,进入了其他变量的领地,很明显就会产生不可挽回的错误。
  再简单说说函数的嵌套。对于一个有返回值的函数,引用函数之后返回的是一个确定了类型的数值,既然是数值,当然可以随便使用了。函数自己调用自己,被称为递归。但是C语言本身为了编译的便利,不允许在一个函数里面定义另一个函数。这就造成了C语言的主体构架形式:一个主函数 N个子函数,N=0~多。只有儿子辈的函数,没有孙子辈的函数。函数里不能嵌套函数,但是函数的调用时可以随便套的,几层都没关系。
  说到底,嵌套让简单的语句或者表达式实现了复杂的功能,任何一种程序设计语言都是可以进行大量的嵌套的。c语言的语句嵌套很丰富,光是选择语句、循环语句的自我嵌套和互相嵌套,就把我套蒙了很久。对于我来说,就是认识到嵌套的本质,掌握好嵌套,千万别上了嵌套的套。

相关阅读

今天分享内容让您掌握电力系统常用计算的基本理论和方法

正常运行时导体载流量计算 一、概述 1. 电气设备通过电流时产生的损耗 ①载流导体的电阻损耗 ②绝缘材料内部的介质损耗 ③金属构件中的磁滞和涡流损耗 这三种损耗将产生热量,导...
2023-06-25
今天分享内容让您掌握电力系统常用计算的基本理论和方法

MLCC陶瓷电容6大特性参数

1.直流偏压特性 直流偏压特性是一个非常重要的参数,它描述了电容值随着施加在两端的直流电压增加而减小的情况。换句话说,随着电压的升高,电容的有效值会降低。 如果在设计中...
2023-06-19
MLCC陶瓷电容6大特性参数

变频器常用频率参数

1.给定频率 用户根据生产工艺的需求所设定的变频器 输出频率称为给定频率。例如,原来工频供电的风机电动机 现改为变频调速供电,就可设置给定频率为50Hz,其设置方法有两种:...
2023-03-21

电机使用变频器对各方面影响及解决

变频器输出的不是正弦波,而是一串上升沿极陡的PWM高压脉冲(IGBT快速开关)。这时候电缆不能再当"普通导线"看了——它在高频下就是一根传输线,而电机端的阻抗和电缆不...
2026-06-04

涨知识——3分钟了解电源线颜色标准和功能!

我们常看到三芯插头线中看到三根电线的颜色各不相,那这三根线各线的功能是什么呢?美标线与国标线是不是相同呢 对于三根芯线 L极:是接火线。 常用芯线颜色:黑色或茶色(有的...
2023-06-11

热销商品

连发瓦斯枪通用瓦斯射钉钢钉枪瓦斯气体高强度瓦斯射钉枪165气罐

连发瓦斯枪是一款专为高强度瓦斯射钉设计的工具,其特点在于能够连续发射瓦斯气体,适用于多种需要快速穿透和固定材料的场景。这款瓦斯枪配备了165气罐,容量足够满足...
4.5

黄铜镀镍金属电缆防水接头EWM密封格兰头HSM电线固定填料函M20M16

黄铜镀镍金属电缆防水接头EWM密封格兰头(HSM型)是一款高性能电线固定与密封装置,适用于M16和M20螺纹规格。采用优质黄铜材质并表面镀镍处理,具备优异的防腐蚀性、机械...
1.14

消防配件二氧化碳灭火器2 3 5 7KG弯头喷管24Kg干冰CO2外喷头喷嘴

二氧化碳灭火器配件中的2357KG弯头喷管与24Kg干冰CO₂外喷头喷嘴,是专业消防设备的重要组成部分。该弯头喷管采用高强度耐腐蚀材料制造,连接灵活,适用于高压CO₂灭火...
4.5

雷士照明led筒灯孔灯客厅吊顶天花灯嵌入式过道筒灯射灯桶灯家用

雷士照明LED筒灯是一款专为现代家居设计的嵌入式照明产品,适用于客厅、吊顶、过道、卧室等空间。采用高品质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒...
5.78

雷士照明嵌入式防眩筒灯射灯窄边过道灯深杯客厅无主灯天花灯米雪

雷士照明嵌入式防眩筒灯射灯——“米雪”系列,专为现代无主灯设计打造。采用窄边深杯结构,有效控制杂散光,实现精准防眩,营造舒适柔和的光环境。适用于客厅、过道、天...
25.67

网站栏目