栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言语法基础-上

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言语法基础-上

**

1、C语言的具体结构和语法规范

以hello_wolrd.c程序为例子,说明C语言程序的一般的结构。

#include  //预处理过程,包含头文件
int main()//定义了一个返回类型为整数的函数main()
{
	
	printf("hello,world\n");
	return 0;
}

需要了解的有两点,第一,了解C语言程序的基本组成。第二,一个C语言要运行,所需要经历的步骤有哪些?

C语言程序的组成和运行步骤 1.1 .1C语言程序的基本组成

就像hello_world.c中反映的一样,一个C语言程序必须要包括预处理步骤和主函数,预处理步骤下面几种类型:预处理步骤类型和解释

宏定义:#define 指令定义一个宏,#undef 指令删除一个宏定义;
文件包含:#include指令导致一个指定文件的内容被包含到程序中;
条件编译:#if,#ifdef,#ifndef,,#elif,#else 和#dendif;
剩下的#error,#line和#pragma指令更特殊的指令,较少用到;

暂时只需要掌握文件包含就可以了,include的意思是包含其他的已经存在的文件,像此处的stdio.h指的就是标准输入和输出文件(可以理解为,standard input and output),h指的是文件类型(.c和,h本质上没有任何区别。 只不过一般:.h文件是头文件,内含函数声明、宏定义、结构体定义等内容,.c文件是程序文件,内含函数实现,变量定义等内容。).h与.c类型的理解

主函数是一个程序的入口,所以一个程序必须要有一个main()的主函数。可以在主函数中进行一些运算和操作并且可以引用其他的已定义的函数。int 对应的是return返回的类型,一般main函数默认返回值是整数0,因此int 和return可以省略。此时默认返回的函数值为0。main()的()是用来写参数的。

1.1.2 C语言的运行步骤

C语言是一种高级程序语言,按照一般的使用习惯,C语言是一门编译型的语言,所以一个C语言程序一般要先编译为一个可执行文件,之后才能开始运行。与编译型语言对应的是解释型语言,例如Python就是一门解释型的语言,在Python的运行过程中,解释器编译一行就运行一行,所以一般C语言出现某些语法错误的时候在最初的编译阶段就可能出现异常,编译失败,而一个py文件运行时,错误行前面的代码应该已经运行了。
值得注意的是,虽然C语言是直接编译直接运行,但是可以在C语言的编译器中设置断点,来寻找错误的位置和类型,通过debug的方式来查看运行过程中各个数据的值,以此来检错和纠错。

1.2 C语言的语法规范

关于代码格式的规范:

一般一个说明或者一个语句占一行;
函数体内的语句和某些结构内的语句要有明显的缩进。;
括号,引号,双引号要成对书写;
当一个可执行语句结束在末尾要加上分号,C语言中在引号之外的空格符号没有意义 ,因此计算机区分语句的标志包裹特殊的关键字和分号。
代码中所有的符号均为英文半角符号。

注释的规范:

//单行注释文本内容

标识符规范:
C语言标识符就是指变量名、文件名的名称

C语言规定,标识符可以由英文字符、数字和下划线组成,并且第一个字符必须是字母或者是下划线,需要注意的是:
1.标识符最好不要超过8位或者两个标志符最好不要使用前八位相同的字符;
2.标志符严格区分大小写;
3.标志符不要使用中文,最好能表示文件的用途或者其他的一些信息;
4.标志符不能是C语言的关键字。

2、C语言的数据类型、变量储存类别 2.1 C语言的数据类型

基本数据类型的存储

数据类型说明字节
int整型2
char字符1
float单精度浮点数4
double双精度浮点数8

此处需要联系到计算机中数据的表示和计算,以char为例,在在计算机中有128个基本的数字,英文字母和特殊的控制和通信字符可以通过ASCII编码的体系,编码为一个字节长度的二进制数储存在,因此char的字节长度为1。另一方面需要注意字符串和字符是不一样的,和Python不同,字符串不是C语言的基本数据类型,在C语言中引用字符串用双引号但是引用字符用单引号。获取某个数据的长度可以用sizeof 操作符,注意是操作符,不是函数,不需要用括号。

2.1.1 整型数据的说明

整型数据就是不包括小数的数据,可以分为三类int、short int、long int(整型数据的类型)下面表格中有一些对应关系。
数据类型 | 说明|字节
-------- | -----|-----|—
int |整型|2
short int| 短整型(int可以省略)|2
long int |长整型(int可以省略)|2
unsigned int|无符号整型|4
unsigned short int|无符号短整型|4
unsigned long int|无符号长整型|4
需要注意的是在C语言中整型的字节长度与编译环境和硬件等等因素有关,所以并不是绝对的以多少字节储存,而且长整型和整型或者短整型和整型也可能有着同样的字节数。实际上C语言对整型数据只是做了宽泛的限制

short 至少占用2个字节。
int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
short的长度不能大于 int,long 的长度不能小于 int。

2.1.2 浮点数的说明

浮点数是与整型数据相对应的数据,是指带小数的数据。根据精度的不同可以分为三种浮点数

数据类型说明字节
float单精度浮点数4
double双精度浮点数8
long double长双精度浮点数16
需要说明的是,浮点数在C语言中的输入,输入和大小比较C语言浮点数详解

浮点数的输出:
float采用%f占位符。
double采用%lf占位符。double不可以用%f输入,但可以用%f输出,但是不建议采用%f,因为不同的编译器可能会有差别。
long double采用%Lf占位符,注意,L是大写。
浮点数输出缺省显示小数点后六位。
浮点数采用%lf输出,完整的输出格式是%m.nlf,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。

科学计数法表示

科学计数法采用%e或%E输出,完整的输出格式是%m.ne或%m.nE,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。

2.1.3 基本数据类型的自然转换和强制转换

基本数据类型的自动转换和强制转换
1、自动类型转换

当C程序在进行赋值或运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。

2、强制类型转换

将精度高的数据类型转换为精度小的数据类型。使用时要加上强制转换符(),但可能造成精度的降低或溢出,格外要注意。

3、C语言的 格式化输入和输出函数 3.1格式化输出函数printf() 3.1.1printf()函数的基本形式

printf("我是个C语言的新手,代号%d",a);

其中引号里面的内容既可以是任意的文本内容,也可以格式化输出一些变量的值,printf里面的f就是formated格式化的意思。printf()函数用来在屏幕上打印“文本”。

3.2格式化输入函数scanf() 3.2.1scanf()函数的基本形式

scanf("%d,%d",&a,&b);

scanf()函数是用来输入的函数,同样的也是需要格式化输入的函数,此处的&运算符是取地址的运算符,表示把scanf()获取到的值存到某个变量的地址,此处需要注意的是,两个%d之间的逗号,也可能是空格或者没有,空格和没有的情况对输入和输入没有特别的要求,只是要求手动输入的两个数据之间没有除了空格之外的字符,但是当%d之间是逗号的时候,手动输入时,必须要在两个数据之间输入一个逗号才能被计算机识别和储存。

3.3格式化符号和转义字符

####3.3.1 格式化字符的具体含义和用法格式化字符

格式化字符含义
%d十进制有符号整数
%o以八进制形式输出无符号整数(不输出前缀O)
% x以十六进制形式输出无符号整数(不输出前缀0X)
%u以十进制形式输出无符号整数
%f以小数形式输出单、双精度实数
%e指数形式输出单、双精度实数
%g%f%e中较短的输出宽度输出单、双精度实数
%c输出单个字符
%s输出字符串

####3.3.2 转义字符C语言中的转义字符

转义字符含义
a响铃
b退格BS,将当前位置移到前一列
f换页FF,将当前位置移到下页开头
n换行LF,将当前位置移到下一行开头
r回车CR,将当前位置移到本行开头
t水平制表HT,调到下一个TAB位置
v垂直制表
|代表一个反斜杠字符
’代表一个单引号或者撇号字符
"代表一个双引号字符
空字符null
ddd1到3位八进制数所代表的的任意字符,注意是八进制数
xhh1到2位十六进制数所代表的的任意字符
这里需要注意的是,因为ASCII中规定的字符集的代码是128个,也就是说完全可以利用三位的八进制数或者是两位的十六进制来表示,此时xhh中的这个x其实起到了一个分辨八进制和十六进制表示的作用。当然,如果乐意的话61也可以表示成61.
4、各种运算符号以及优先级 4.1 C语言中运算符号的分类
C语言中运算符号可以按照运算的类型来分类,也可以按照目数来分类,分为单目运算符,双目运算符等等。

C语言中运算符号的分类

4.1.1 算数运算符号


图片来自网络,侵删

4.1.2 关系运算符号


图片来自网络,侵删

4.1.3 逻辑运算符号


图片来自网络,侵删

4.1.4 赋值运算符号


图片来自网络,侵删

4.1.5 位运算符号


图片来自网络,侵删

4.1.6 其它运算符号


图片来自网络,侵删
补充:

求字节数运算符:sizeof
强制类型转换运算符:(类型)
下标运算符:[ ]
函数调用运算符:( )

4.2 C语言中运算符号的优先级概览


图片来自网络,侵删

**

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号