C语言程序设计——基础知识梳理(上)

掌握C语言,必须要把基础知识夯实,那么就先从C语言的基础知识开始吧。

1.  C语言基本词法

1.1  C语言字符集(C语言语法允许使用的字符的集合)

(1)小写字母26个;

(2)大写字母26个;

(3)数字字符10个;

(4)符号29个:   _  {  }  [  ]  #  (  )  <  >  %  :  ;  .  ?  *  +  -  /  ^  &  |  ~  !  =  ,  \  "  '

(5)空白符5个: 空格  Tab  回车换行  Ctrl+L  Ctrl+K

C语言语法规定,连续多个空白符实际被看作一个,其间隔效果是一样的。

1.2   关键字(保留字)

37个关键字:  auto  break  case  char  const  continue  default  do  double  else  enum  extern  float  for  goto  if  inline  int  long  register  restrict  return  short  signed  sizeof  static  struct  switch  typedef  union  unsigned  void  volatile  while  _Bool  _Complex  _Imaginary

1.3  标识符

所有用来表示变量名、常量名、语句标号、函数名、数组名和类型名的字符序列称为标识符。

(1)标识符只能由大小写字母、数字和下划线组成,且第一个字符必须是字母或下划线;(出现字母、数字、下划线之外元素或第一个字符是数字即为错误)

(2)标识符不能是关键字;(可以是main,define等,但不推荐

(3)大小写会被认为是不同的字符;

2.  数据类型

基本类型数据的内存长度
类型charshortintlonglongfloatdouble
内存长度(字节)1244 or 8848

 计算机中的单位:1 byte = 8 bit , 1 kb = 1024 byte , 1 mb = 1024 kb , 1 gb = 1024 mb ,               1 tb = 1024 gb , 1 pb = 1024 tb

2.1  变量 

2.1.1  整型

C语言的整型分为长整型【long (int)】、基本整型(int)和短整型【short (int)】。

整形数据的储存方式为二进制补码形式。

在此处引入原码、反码和补码的概念:

观察数字123与数字-123的存储方式如下

数字123的存储方式
0001111011
数字-123的存储方式
1110000101

 注意点: ①存储数据时最高位为符号位,0表示正数,1表示负数

                ②正数的反码、补码与其原码相同

                ③负数的原码为直接按照正负写出的二进制序列反码通过原码的符号位不变其他位按位取反得到补码是反码+1

-123的原码
1001111011
-123的反码
1110000100
-123的补码
1110000101

                 ④便捷记忆:-1的补码为全1

                 ⑤通过该底层原理,可以理解溢出现象的产生

2.1.2  浮点型(实型)

浮点型分为单精度(float)、双精度(double)和长双精度型(long double)。

2.1.3  字符型

注意:字符型可以存储整型数值(个位数字),因为其属于单字节字符。存储后内存中的数据是ASCII码值。

2.2  常量

常量指程序中不可修改的数据,分为字面常量(如 64,3.1415,‘A’等)和符号常量(由#define所定义的标识符常量)。

2.2.1  整型常量

整型常量有3种表示方式:

(1)十进制整数

(2)八进制整数。以0开头和0~7组成的整数,如0、012、0177

(3)十六进制整数。以0x0X开头和0~9、A~F或a~f组成的整数,如0x1234 、0XAb、0x2cf

注意:   在一个整数值后面加一个字母l或L,则它是long型,例如-1L;

              在一个整数值后面加一个字母u或U,则它是unsigned型(整数默认是signed型),例如168U、6535LU 。

C语言只有八、十、十六进制无二进制。但运行时都需要转换成二进制来处理。

2.2.2  浮点型常量

浮点型常量有2种表示方式:

(1)小数形式。整数和小数可以省略其中之一。如1.234、.123、123.

(2)指数形式,又称科学计数法表示。以fEn或fen的格式组成,E或e表示以十为底的幂,n为指数且必须是整型,f可以是小数或整数。如3.1415可写作:0.31415e+1 , 314.15E-2 , 3.1415e0(e前e后必有数,e后必须为整数

浮点型常量默认为double型,在浮点数后面加字母f或F,则是float型,如3.1415f , 3.1415E0F;在浮点数后面加字母l或L,则是long double型,如 .0012L , 1.2e-2L

2.2.3  字符常量

字符常量可以有3种不同的表示方式:

(1)以一对单引号括起来的一个字符表示字符常量,如'A' '0' '&',存储的是该字符的ASCII码值,单引号只能包括一个字符,如'AB'就是错的。

(2)转义字符

转义字符及其含义\a\b\f\n\r\t\v\'\"\\\?\0\ooo\xhh
含义响铃符退格符进纸符,光标移到下一页开头换行符,光标移到下一行开头回车符,光标移到本行开头水平制表符,光标跳转到下一个tab位置垂直制表符单引号双引号反斜线问号空字符1~3位八进制数为码值对应的字符1~2位十六进制数为码值对应的字符

(3)用ASCII码值表示字符常量

char a = 65 ;
printf("%c",a); //得到的输出结果:a 
printf("%d",A); //得到的输出结果:65

2.2.4  字符串常量

 以一对双引号括起来的零个或多个字符组成的字符序列为字符串常量。

'1'字符占一个字节"1"字符串占两个字节含有一个\0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

犀利卓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值