C语言结构标记的作用,C语言基础知识之词法符号
任何高级语言都有自定义的词法符号和支持的数据类型。
词法符号是语言的基本组成单位,数据类型是数据的基本属性。这里我将先对C语言的C法符号做一个小的总结,既是对我自己C语言的一个系统的整理与提高,也希望对希望提高C语言有所帮助,对于数据类型我将在随后一段时间总结介绍。
词法符号是程序设计语言中有若干字符组成的有意义的最小语法单位。
按照词法符号在程序中的作用可以分为:关键字、标识符,分隔符、运算符和标点符。
1.1关键字:是由系统预定义的词法符号,有特定的含义,不允许用户重新定义,所以在定义标识符的时候不能与关键字重名。基本的关键字有32个,分别如下:
C语言关键字分为两个大的类型,其中两种大的类型又分为七种小的类型:
1数据类型关键字
A基本数据类型(5个)
void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
char:字符型类型数据,属于整型数据的一种
int:整型数据,通常为编译器指定的机器字长
float:单精度浮点型数据,属于浮点数据的一种
double:双精度浮点型数据,属于浮点数据的一种
B类型修饰关键字(4个)
short:修饰int,短整型数据,可省略被修饰的int。
long:修饰int,长×××数据,可省略被修饰的int。
signed:修饰整型数据,有符号数据类型
unsigned:修饰整型数据,无符号数据类型
C复杂类型关键字(5个)
struct:结构体声明
union:共用体声明
enum:枚举声明
typedef:声明类型别名
sizeof:得到特定类型或特定类型变量的大小
D存储级别关键字(6个)
auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。
static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。
extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明。
const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。
2流程控制关键字
A跳转结构(4个)
return:用在函数体中,返回特定值(或者是void值,即不返回值)
continue:结束当前循环,开始下一轮循环
break:跳出当前循环或switch结构
goto:无条件跳转语句
B分支结构(5个)
if:条件语句
else:条件语句否定分支(与if连用)
switch:开关语句(多重分支语句)
case:开关语句中的分支标记
default:开关语句中的“其他”分治,可选。
C循环结构(3个)
for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件
do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件
while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
以上各种类型的关键字的用法在这里就不再详细的介绍了。相信随着大家对C语言的深入了解后都会碰见的。
1.2标识符:标识符是由程序员按照命名规则自行定义的词法符号,用于宏定义、变量名、函数名和自定义类型名等。其命名规则如下:
1)、标识符由一个或多个字母、数字或下划线组成;
2)、标识符的第一个字符必须是字母或下划线;
3)、标识符不能与任何关键字相同;
1.3 分隔符:包括逗号、空白符、分号和冒号。
c语言中,分隔符用来分隔多个变量、数据项、表达式等的符号。
逗号作为分隔符用来分隔多个变量和函数参数;
空白符常用来作为多个单词间的分隔符,也可以作为输数据时自然输入项的缺省分隔符;
分号常用于for循环语中for后面,圆括号内的三个表达式之间;
冒号用于语句标号与语句之间。
1.4运算符:表示运算的词法符号,C语言有着非常丰富的运算符,按其功能分,如下表:
其中特别要注意:
1)、算术求余运算不支持浮点运算,整除运算符“/”两边的操作数都为整数时其值才取整数;
2)、关系运算符"=="、">="、"<="、"!="中间不能有空格。还要特别注意不要把"=="与赋值运算符"="等同,"=="表示判断左右两边是否相等;
3)、一定要留意位运算符"&&"、"||"短路特性;
4)、位运算符的运算对象必须是整数,浮点类型的不支持位运算;
5)、在扩展的赋值运算符如"&="等间没有空格符号;
6)sizeof是32个关键字中的一种,看到sizeof()不要认为就是函数;
大概的将C语言运算符中需要注意的都一一列举了下,难免有不全之处,望不吝赐教!^-^
1.5标点符:
C语言中的标点符共有13个,即:[ ] () { } * ,: = ;… # &(取地址)->(指向) .
C语言结构标记的作用,C语言基础知识之词法符号相关推荐
- C语言结构体的作用、定义、使用方法以及实例
目前已学的数据类型:数组(1.所有数据的类型必须一致 2.访问数组的成员必须通过下标) 学籍管理系统:学生(姓名.学号.性别.年龄.成绩...) 飞机票订票系统:机票(订票时间.班号.起点.终点. ...
- c语言的应用与作用,C语言主要应用在什么地方?
C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.因此,它的应用范围 ...
- C 语言结构体引用,引用 C 语言结构体学习
引用 C 语言结构体学习 这篇文章很基础,是个学习的好资料,所以收藏了: 1.直接声明结构体变量: struct{ int length; int width; }box1; 这样就声明了一个名为bo ...
- 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)
一,堆栈在汇编的作用,以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知,单片机从烧程序到达到一定的工作过程.首先明白为什么要引如"烧"写的过程 ...
- c语言对编程对作用,c语言编程心得体会
c语言编程心得体会 c语言是在国内外广泛使用的一种计算机语言.以下是小编整理的c语言编程心得体会,欢迎大家阅读! c语言编程心得体会1 说到我学习c语言时,真是用千言万语呀!记得刚开始学的时候,我的c ...
- c语言链表head的作用,c语言链表的用法
c语言链表的用法 链表是数据结构中比较基础也是比较重要的类型之一,那么有了数组,为什么我们还需要链表呢!或者说设计链表这种数据结构的初衷在哪里?下面小编就为大家介绍下c语言链表的用法. c语言枚举的用 ...
- c语言程序头文件作用,C语言头文件
C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...
- c语言结构体编程,[编程] C语言的结构体详解
结构体 struct 结构体名{}变量名; 结构体变量: struct person{ char *name; int age; float score; } student; 成员的获取和赋值 // ...
- c语言 结构体的输入输出_C语言的控制结构和输入输出
c语言 结构体的输入输出 Control Structure in C defines how the statements in the program are going to execute. ...
最新文章
- Real-Time-Voice-Cloning的使用教程
- 使用Docker-容器命令介绍
- JAVA多线程程序ProgressBar
- 哔哩哔哩公司swot分析_「127」一个简单的工具分析自己的优势与劣势
- 电脑时间校对器_笔记本电脑如何保养?华为教你五招轻松延长使用时间
- 使用RQShineLabel
- python32位系统下载_pythonwin下载-PythonWin 32位(Python集成开发环境) 3.6 官方版 - 河东下载站...
- Web Components 系列(十)—— 实现 MyCard 的基本布局
- paip.提升用户体验---上传文件图片命名
- jsp mysql超市管理_基于WEB的小型超市管理系统的设计与实现(JSP,MySQL)
- 网络安全与黑客工具TOP100
- 一文带你深入了解大数据服务
- c语言填空题带答案,C语言练习题-填空题(带答案)
- Adaptive AUTOSAR和Classic AUTOSAR
- k8s调度之污点和容忍
- 一个不错的技术面试官是怎么样的?
- USB电源过流保护芯片应用介绍
- mac 有道云词典闪退问题修复
- c语言:求正方体的表面积和体积
- Microsoft Visual Studio 各版本对应关系
热门文章
- Debian的试用笔记
- 关于Visual studio 2015 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包的解决方案
- 播放器色觉辅助功能开发,助力提升色觉障碍用户的视频观看体验
- 【转】unity 的 MonoDevelop 在Windows下显示中文不出现乱码
- JavaScript中关于call函数的一道面试题
- Navicat11 for mysql(包括激活工具)亲测可用
- 字库芯片学习之汉字内码
- R语言基于lm模型构建线性回归模型(蟋蟀的鸣叫声与温度的关系)、计算回归模型的RMSE指标、计算回归模型的R方指标(R-squared)
- 三极管和MOS管的使用及区别
- 路由器linux版本升级,华为路由器升级全攻略