大家好,欢迎来到IT知识分享网。
本文记录C语言基本语法,这里提供简单的示例和代码,来详细讲解C语言的基本语法也作为我复习C语言的笔记,方便自己复习。
1.标识符与关键字
标识符的命名规则:
1.只能由字母、数字和下划线组成(例如:Score1,Stu_name)
2.第一个字符必须为字母或下划线
3.区分大小写字母
4.C语言内部规定的标识符(即关键字)不能作为用户标识
C语言的关键字:
C语言的关键字,是保留的一些特殊作用的词语,一共32个关键字
| 关键字 | 说明 |
|---|---|
| auto | 声明自动变量 |
| break | 跳出当前循环 |
| case | 开关语句分支 |
| char | 声明字符型变量或函数返回值类型 |
| const | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 |
| continue | 结束当前循环,开始下一轮循环 |
| default | 开关语句中的”其它”分支 |
| do | 循环语句的循环体 |
| double | 声明双精度浮点型变量或函数返回值类型 |
| enum | 声明枚举类型 |
| extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
| float | 声明浮点型变量或函数返回值类型 |
| for | 一种循环语句 |
| goto | 无条件跳转语句 |
| if | 条件语句 |
| int | 声明整型变量或函数 |
| long | 声明长整型变量或函数返回值类型 |
| register | 声明寄存器变量 |
| return | 子程序返回语句(可以带参数,也可不带参数) |
| unsigned | 声明无符号类型变量或函数 |
| union | 声明共用体类型 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| while | 循环语句的循环条件 |
C99新建关键字:
_Bool、_Complex 、_Imaginary 、inline 、restrict
C11新建关键字:
_Alignas 、_Alignof 、_Atomic 、_Generic 、_Noreturn、_Static_assert 、_Thread_local
2、常量和符号常量
常量:在程序运行过程中,其值不会发送变化的量。
变量:在程序运行过程中,其值可以发送变化的量
(1)常量和常量符号
C语言提供的常量类型有整型常量、实型常量、字符常量、字符串常量和符号常量。
用一个标识符来代表一个常量,该标识符叫做符号常量,其一般形式为:
#define 标识符 常量
例如:
|
1 |
|
关于typede和defin的用法与区别:
1.#defien是预处理指令,在编译预处理时进行简单替换,不作正确性检查,不管含义是否正确照样带入,只要在编译器已被展开的源程序时才会发现可能的错误并报错。
例如:#define PI 3.
程序:area = PIrr替换3.r
2.rtypedef是在编译时处理的,通常是用于对已有数据类型取别名,而#define只是简单地替换。
例如:typedef unsigned int uint;
这样就为unsigned int型引入新助记符uint,以后使用uint直接代表unsigned int型。
例如:typedef PI 3.;
编译器会直接报错,原因PI并非已存在类型,其次“3.”不符合命名规则。
(2)变量
1.变量在内存中占用一定的储存单元,在该储存单元中存放变量值。
2.程序中用到的所有变量都必须有一个变量名
3.变量名和变量值是两个不同的概念
4.不同类型的变量在内存中占据储存单元的数量及储存的格式不相同,例如:char ch = ‘1′;int i = 1;
5.变量必须“先定义后使用”,这样做的目的是:
1、便于编译程序程序检测对该变量的运算是否合法。例如:整型变量可以进行求模(余数)运算,实型变量不可以进行求模运算。
2、程序中变量名的正确使用
3、C语言数据类型
(1)整型常量
整型常量就是整数,有3种表示形式
1.十进制整常数:就是通常整数的写法,数码取值为0-9。例如:25、-623、0等
2.八进制整数:以0为前缀,数码取值0-7,
例如:
020(十六进制16)
016(十六进制14)
0(十六进制65535)
-010(十进制数-8)
几种不合法的八进制数:
256(无前缀0)
079(包含了非八进制数码9)
3.十六进制整型常数:以数字和字母0x开头,即0x作为前缀,数码的取值为0-9和A-F(或字母a-f)
几种合法的十六进制数:
0x2A(十进制数42)
0x1AB0(十进制数6832)
几个不合法 的十六进制数:
5A(无前缀)、0x2H(包含了非十六进制数码H)
整型变量分为:基本整型、长整型、短整型、无符号型
整型变量的定义及初始化:
定义变量及初始化的一般形式 为:
类型说明符 变量名1 = 值1
例如:
|
1 2 3 |
|
例程:
|
1 2 3 4 5 6 7 8 |
|
原码、反码和补码
计算机中数分为有符号和无符号。他们是以二进制形式表示的,有三种表示方法,即原码和补码。
三种表示方式由符号位和数值位两部分构成
符号位在最高位,用0表示“正”,1表示“负”。
取余位为数值位
原码:按照二进制的方法来表示数的绝对值,用这个方法得到的就是数的原码。
反码:正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位 按为取反。
补码:正数的补码与其原码相同,负数的补码是将其原码除符号位之外的各位求反之后,在末位再加1
正数的原码、反码。补码相同;负数的原码、反码、补码不同。数值在计算机中以补码形式存放。
例如:求-127的补码
(2)实型数据
实型数据又称为实数或浮点数,指是带有小数部分的非整数数值。
实型常量
在C语言中,实数常量只能用十进制数表示,有两种表示方法:
1.小数形式:由数字0~9和小数点组成,当小数部分为零时,小数点不能省略。例如:0.0/24.4、-56.33等均为合法的实型常量
2.指数形式:由十进制数、加阶码标志小写字母“e”(或大写字母“E”)和阶码(必须是整数)组成。
例如:2.3E5(相当于2.3 x 10^5)
以下是不合法的实型常量:
123(无小数点)
E4(阶码“E”之前无数字)
23.-E3(负号的位置不对)
2.7E(无阶码)
实型变量
实型变量的定义以及初始化
例如:
|
1 2 |
|
(3)字符型数据
字符常量是用一对单引号括起来的一个字符
例
如:‘b’、‘z’、‘=’、‘?’、‘5′
字符常量特点:
1.字符常量只能是单个字符,不能是多个字符
2.字符常量是以ASCII码形式储存,一个字符常量占用一个字节空间。
ASCII码
ASCII码表示American Standrd Code for Information Interchange。ASCII编码能表示数据范围是00000000~共2^8即256个数据
标准的ASCII码有128个字符,其中:
1.0-31为控制字符,例如,回车换行、文件结束标志、字符串结束标志
2.10个阿拉伯‘0’~‘9’的码值是连续的
3.26个大写字母‘A’-‘Z’是连续的,26和大小写字母‘a’-‘z’是连续的
4.字符常量也可以参与各种运算,如:‘B’-‘A’值为1(字符‘B’的ASCII码值减去66字符‘A’的ASCII码值65结果为1)
字符型变量
1.字符型变量在内存中占用1个字节,只能存放一个字符,并以该字符的ASCII码的值的形式存放
2.在C语言中,一个字符型数据可以按照它的ASCII码进行数据运算
字符型数据储存空间和值范围
| 类型 | 字节数 | 取值范围 |
|---|---|---|
| char | 1 | -128~127 |
| unsigned char | 1 | 0~255 |
例程:给字符变量赋整数值
|
1 2 3 4 5 6 7 |
|
转义字符字符
转义字符:是由一个反斜杠“”后跟规定,具有特定含义的字符
常用转义字符如下表
| 转义字符 | 意义 | ASCLL码值(十进制) |
|---|---|---|
| \a | 响铃(BEL) | 007 |
| \b | 退格(BS) ,将当前位置移到前一列 | 008 |
| \f | 换页(FF),将当前位置移到下页开头 | 012 |
| \n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| \r | 回车(CR) ,将当前位置移到本行开头 | 013 |
| \t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \’ | 代表一个单引号 | 039 |
| \” | 代表一个双引号字符 | 034 |
| \ | 代表一个反斜线字符”’ | 092 |
| ? | 代表一个问号 | 063 |
| \0 | 空字符(NUL) | 000 |
| \ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
| \xhh | 十六进制所代表的任意字符 | 十六进制 |
转义字符使用如下:
|
1 2 3 4 5 6 7 |
|
字符串常量
字符串常量和字符常量区别:
1.字符常量是右边单引号括起来的字符,而字符串常量是由双引号括起来的字符。尽管‘a’与“a”都包含一个字符,但在C程序中,它们都具有不同的含义
2.字符常量只能是一个字符,字符串常量可以是多个字符
3.可以把一个字符串常量赋值一个字符变量,但不能把一个字符常量赋值一个字符变量。
字符串变量
在C语言中没有专门的字符串类型,我们只能使用数组或者指针来间接地存储字符串。
|
1 2 |
|
str1 和 str2 是字符串的名字,后边的[]和前边的*是固定的写法。初学者暂时可以认为这两种存储方式是等价的,它们都可以通过专用的 puts 函数和通用的 printf 函数输出。
|
1 2 3 4 5 6 7 8 9 10 |
|
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112093.html






