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

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

相关阅读

贴片电容在LED驱动电路中的注意事项

贴片电容全称为多层片式陶瓷电容器(MLCC),英文缩写为MLCC。在受到温度冲击时,MLCC可能会从焊端开始产生裂纹。这种现象在小尺寸电容相对于大尺寸电容时更为明显,原因在于大尺...
2023-08-09
贴片电容在LED驱动电路中的注意事项

插座左零右火?搞电工的你知道是为什么吗?

大家都知道插座左零右火,可是为什么是左零右火呢?一般人都回答是国家标准吧?行业都这么做?但是如果你要问为什么,可能真的答不上来。这个非常重要,不管你是不是电工都最...
2023-06-11
插座左零右火?搞电工的你知道是为什么吗?

MOS管最常见的几种应用电路(开关、放大、时序、双向电平)

一、开关和放大器 MOS管最常见的电路可能就是开关和放大器。 1. 开关电路 G极作为普通开关控制MOS管。 2. 放大电路 让MOS管工作在放大区,具体仿真结果可在上节文章看到。 二、时序电...
2023-06-06
MOS管最常见的几种应用电路(开关、放大、时序、双向电平)

绘制电气原理图使用什么工具

在进行电气设计时,会经常用到一些绘图工具,今天咱们介绍三款电气绘制常用的工具 1.CAD,这款软件的适用范围广,无论机械还是电气基本上都能用到。CAD可以绘制电气系统图和电气...
2023-04-04
绘制电气原理图使用什么工具

高电平和低电平是什么意思?区别是什么?

高电平和低电平是数字电路中经常会出现的专业名词,它们所表面的意思就是电路上有和无,两者之间没有中间值,在不同的电路上,电压的具体值也是各不相同的。如果用简单的语言...
2023-05-26
高电平和低电平是什么意思?区别是什么?

热销商品

拷边机 包缝机内六角上针匙 开刀 上针内6角螺丝刀扳手 1.5 1.6

拷边机(包缝机)专用内六角上针匙及开刀工具,适用于精确调整机针位置与维护设备。配备1.5mm与1.6mm两种规格的内六角螺丝刀扳手,专为紧固或拆卸上针螺丝设计,确保机针安...
1.65

暗装开关插座面板单开双控一开五孔二三极USB快充肤感超薄家用4开

暗装开关插座面板,简约设计,完美融入家居环境。单开双控,轻松实现远程控制,方便实用。一开五孔,满足多种电器插孔需求;二三极USB快充,快速充电,高效便捷。超薄设计,节省空...
1.2

鸿雁开关插座面板旗舰店家用暗装墙壁86型一开带五孔多孔X86-1

鸿雁开关插座面板旗舰店推出的家用暗装墙壁86型一开带五孔多孔X86-1,是一款设计精良、功能齐全的家居电气产品。该产品采用86型标准面板尺寸,安装方便,适用于各种暗...
4.71

不锈钢加厚镊子维修工具夹子圆头弯头防滑带齿止血烧烤夹茶杯水草

不锈钢加厚镊子维修工具夹子圆头弯头防滑带齿止血烧烤夹茶杯水草 这款不锈钢加厚镊子维修工具夹子是设计用于各种专业场合的多功能工具。它拥有一个厚实的手柄,确...
0.8

三色变光led筒灯2.5寸3W5瓦开孔6 7.5 8公分家用客厅嵌入式天花灯

三色变光LED筒灯,2.5寸精巧设计,功率可选3W/5W,适用于开孔直径6.7–8公分的家用嵌入式安装。采用高亮LED光源,支持暖光、自然光、白光三色切换,满足不同场景氛围需求。...
7.2

网站栏目