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

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

相关阅读

电工基础:RC电路的零状态响应与全响应(42)

【点击领取】 三菱案例 | 西门子案例 | 电工手册 | 工具箱 软件 【点击获取】 三菱PLC例程117个|西门子PLC例程777个 【点击下载】 2020新电工仿真软件    动态电路,对于大多数人而言...
2023-06-27

变压器的冷却方式介绍

变压器的冷却方式是由冷却介质和循环方式决定的,因此油浸变压器的冷却方式是由四个字母代号表示的,见下图。 干式变压器冷却方式分为自然空气冷却(AN)和强迫空气冷却(AF)...
2023-06-13
变压器的冷却方式介绍

一例稳压环路电路的原理图解

1、反馈电路原理图 如图: 2、工作原理 当输出U0升高,经取样电阻R7、R8、R10、VR1分压后,U1③脚电压升高,当其超过U1②脚基准电压后U1①脚输出高电平,使Q1导通,光耦OT1发光二极管发...
2023-04-08
一例稳压环路电路的原理图解

电阻并联电路的特点及作用说明

电联并联的定义: 两个或两个以上电阻,接在电路中相同的两点之间,使每一电阻两端电压相同的连接方式,称为电阻的并联。 图1:电阻并联 电阻并联电路的特点: (1)电阻两端的...
2024-03-18
电阻并联电路的特点及作用说明

智能电表选型:精度等级、量程互感器匹配、通信适配一次讲透

为什么很多智慧能源项目装了一大堆电表,数据却对不上账。总表和分表读数差了十几个点,抄表系统三天两头离线。换了表还是不行——根源不在设备质量,电表前期选型匹配...
2026-07-11
智能电表选型:精度等级、量程互感器匹配、通信适配一次讲透

热销商品

广东珠江电线电缆阻燃国标定制BYJBV BVR YJV YJY RVV RVS RV KVV

广东珠江电线电缆,专注于阻燃国标定制,产品涵盖BYJBVBVRYJVYJYRVVRVSRVKVV等多种规格。我们采用先进生产技术,严格遵循国家标准,确保产品质量可靠、性能稳定。产品适...
¥ 1

可换头防静电塑胶镊子ESD-7A/242/249/259防划伤夹IC硅晶片陶瓷头

ESD-7A/242/249/259是一款专为半导体行业设计的防静电塑胶镊子,有效防止静电对敏感电子元件的损害。其独特之处在于可更换的镊子头,包括专为夹持IC硅晶片和陶瓷元件...
¥ 2

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

L型套筒扳手铣口烟斗双头弯头7字穿孔机修六角汽修轮胎工具6-19mm

L型套筒扳手是一款常用于工业领域的多功能工具,具备双头设计,可高效完成铣口、烟斗等多种工件孔位加工,适用六角汽修、轮胎等场景。其套筒尺寸为6-19mm,精准适配各类...
¥ 3.5

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目