本篇介绍C语言语法
标识符
C语言中,使用的变量名、函数名、标号等被统称为标识符。C语言规定,标识符只能是字母(A-Z,a-z)、数字(0-9)、下划线(_)组成的字符串,并且第一个字符必须是字母或下划线。
注意以下几点:
- 标识符中,大小写是有区别的。如Abc和abc是两个不同的标识符。
- 所有标识符必须由字母或者下划线开头。
- 标识符不能使用关键字。
- 标识符命名应便于理解。
关键字
关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。
C语言关键字可分为以下三类:
- 类型说明符:用于定义、说明变量、函数或其他数据结构的类型。
- 语句定义符:用于表示一个语句的功能,如 if、else
- 预处理命令字:用于表示一个预处理命令,如include
最基本的数据类型
下图为C语言数据类型结构图
-
基本数据类型
特点:其值不可以再分解为其他类型。 -
构造数据类型
一个构造数据类型的值可以分解成若干个“成员”,每个“成员”都是一个基本数据类型或又是一个构造数据类型。C语言中,有以下3种构造数据类型:- 数组类型
- 结构体类型
- 共用体(联合)类型
-
指针类型
指针就是地址,指某个变量在内存储器中的地址。 -
空类型
C语言中,有一类函数,调用后不需要向调用者返回函数值,这种函数被定义为“空类型”,其类型说明符为void。它是所有基本类型的基础。
常量
在执行程序过程中,其值不发生改变的量称为常量,C语言的常量分为以下两种:
-
直接常量
直接常量是直接以字面形式即可判别的常量,如" int a=1;" -
字符常量
即用一个标识符表示的常量。定义方法有两种:- 编译指令#define定义
如“#define A 1”,标识符A代表常量1,注意几点:#define是一条预处理指令,被称为宏定义指令,其功能是把该标识符定义为其后的常量值;习惯上用大写字母表示符号常量名,小写字母表示变量名 - 使用关键字const定义
const是一个修饰符,定义一个常量时需要在常量名前加上此修饰符,程序中每处常量都可以使用该名字代替。如“const int a=1;”注意几点:定义成const后面的常量,程序对其只能读不能修改,并且定义常量时必须初始化,其值可以是一个常量表达式(不能包含有某个函数)。
- 编译指令#define定义
变量
其值可以改变的量称为变量。
-
两个基本信息
变量的地址,变量的值。 -
C语言变量类型
- 变量作用域
- 局部变量
在函数内部说明的变量为局部变量,只有在函数执行时,局部变量才存在。当函数执行完退出后,局部变量对应的内存空间会被释放,局部变量随之消失。 - 全局变量
全局变量的说明的位置在所有函数之外,可被任何一个函数使用和读写。
例:
#include<stdio.h>
int a=1;
int max(int x,int y);
int main()
{
a=2;
int b=3,c=4;
printf("%d\n",a);
printf("%d",max(b,c));
return 0;
}
int max(int x,int y)
{
if(x>y)
{
return x;
}
return y;
}
运行结果:
说明:上例中,a为全局变量,可以在函数main内使用,也可以在函数max内使用;b、c为局部变量,只能在main函数内使用。
- 变量的声明
格式为[变量类型 变量名;],下面两种声明方式都是合法的。
int a;
int a,b;
整型数据
- 整型常量
注:整型常数也可以加后缀,“L”或“l”表示长整型,“U”或“u”表示无符号;计算机中负数是以补码的形式存储的。
- 整型变量
类型如下
实型数据
C语言中实数只采用十进制,实型也称为浮点型。
-
实型常量
-
实型变量
其中,float为单精度型,double为双精度型。
字符型数据
- 字符常量
字符常量是单引号“ ’ ”括起来的一个字符,如’a’。字符串常量占一个字节的存储空间。除了基本的字符外,C语言还有一些转义字符,即将反斜杠(\)后面的字符换成其他意思,如\n表示回车换行,'表示单引号符。常用转义字符表如下:
说明:字符型数据取值范围为0~255
-
字符串常量
字符串常量是由一对双引号括起来的字符序列,如"ab"。字符串常量占的字节数等于字符串中字节数加1,增加的一个字节中存放字符"\0",这是字符串结束的标志。
注:C语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。 -
字符变量
字符变量用来存储字符常量,将一个字符常量放到一个字符变量中,并不是把字符本身放到内存单元中,而是将此字符相应的ASCII码放到存储单元中。所以可以将字符变量当作整型量,其既可以以字符形式输出,也可以以整数形式输出。ASCII表如下
例:
int main()
{
char a = 'a',b;
b = a +7;
printf("%d %d\n",a,b);
printf("%c %c\n",a,b);
return 0;
}
运行结果:
说明:显然字符变量a参与加法运算时是被当作整型量的,每个字符都有对应的ASCII码。
不同类型数据转换关系
- 自动转换
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。参与运算量的类型不同,则先转换成同一类型,再进行运算。变量转换规则如下
例如char和float运算,则将char转换为double后运算。
- 强制转换
强制转换格式为:(类型说明符)(表达式)
例如:
(float) a
(int)(a+b)
说明:无论是强制转换还是自动转换,都是临时性的转换,而不改变数据说明时对该变量定义的类型
总结一下,本篇介绍了C语言语法,包括标识符、关键字、基本数据类型、常量、变量。
小僧初来乍到,希望大家多多支持!如有纰漏,欢迎大家在评论区留言,小僧会及时更正,同时,大家如果有疑惑的地方可以把问题写在评论区,小僧看到会回复哟😄!
另外,小僧的公众号上线啦,里面有“实用工具”、“学习资源”以及许多资料,欢迎大家关注一波小僧的公众号👇
参考:
百度百科
《C语言开发从入门到精通》------王长青、韩海玲