前言

  本篇是本人自学 C 语言过程中记录学习文章笔记,如果对大家有用,点赞加收藏吧。
  注:笔记基于《C语言从入门到精通(第3版)》明日科技编著,清华大学出版社出版的,第3章 数据类型前一部分内容。


目录

  • 前言
  • 一、编辑规范
    • (一)代码缩进
    • (二)变量、常量命名规范
    • (三)函数的命名规范
    • (四)注释
  • 二、关键字
  • 三、标识符
  • 四、数据类型
    • (一)基本类型
    • (二)构造类型
    • (三)指针类型
    • (四)空类型
  • 五、常量
    • (一)整型常量
      • 1、八进制整数
      • 2、十进制整数
      • 3、十六进制整数
    • (二)实型常量
      • 1、科学计数法
      • 2、指数方法
    • (三)字符型常量
      • 1、字符常量
      • 2、字符串常量
    • (四)转义字符
    • (五)符号常量
  • 尾注


一、编辑规范

  虽然在 C 语言中编写代码是自由的,但为了使编写代码具有通用、友好的可读性,在编写过程中尽量按照一定的规范编写程序。

(一)代码缩进

  代码缩进统一为 4 个字符,不采用空格,而用Tab键制表位。

(二)变量、常量命名规范

  • 常量命名,统一为大写格式
  • 成员变量,均以 m_ 开始。
  • 普通变量,取与实际意义相关的名称,要在前面添加类型的首字母,并且名称的首字母要大写
  • 指针,为其标识符前添加 p字符,并且名称首字母要大写
#define AGE 20	/*定义常量*/
int m_iAge;		/*定义整型成员变量*/
int iNumber;	/*定义普通整型变量*/
int * pAge;		/*定义指针变量*/

(三)函数的命名规范

  在定义函数时,函数名的首字母要大写其后的字母大小写混合

int AddTwoNum(int num1,int num2);

(四)注释

  尽量采用行注释。如果行注释与代码处于一行,则注释应位于代码右方。如果连续出现多个行注释,并且代码较短,则应对齐注释

int iLong;		/*长度*/
int iWidth; 	/*宽度*/
int iHieght   	/*高度*/

二、关键字

  在 C 语言中有 32 个关键字。

注:在 C 语言中,关键字是不允许作为标识符出现在程序中的。

三、标识符

  在程序的运行过程中可以使用变量、常量、函数、数组等,就要为这些形式设定一个名称,而设定的名称就是的标识符
  在 C 语言中,设定一个标识符的名称是非常自由的,可以设定自己喜欢、容易理解的名字,但不意味着可以自由发挥。

  • 所有标识符必须由字母或下划线开头,而不能使用数字或者符号作为开头
int !number;	/*错误,标识符第一个字符不能为符号*/
int 2hao;		/*错误,标识符第一个字符不能为数字*/

int number;		/*正确,标识符第一个字符为字母*/
int _hao;		/*正确,标识符第一个字符为下划线*/
  • 在设定标识符时,除开头外,其他位置都可以由字母、下划线或数字组成
int good_way;	/*正确,标识符中可以有下划线*/
int bus7;		/*正确,标识符中可以有数字*/
int car6V;		/*正确*/
  • 英文字母的大小写代表不同的标识符,在C语言中是区分大小写字母的
int mingri;		/*全部是小写*/
int MINGRI;		/*全部是大写*/
int MingRi;		/*一部分是小写,一部分是大写*/

  只要标识符中的字符有一项是不同的,其代表的就是一个新的名称。

  • 标识符不能是关键字,关键字是定义一种类型使用的字符,标识符不能使用。
int int;		/*错误!*/
int Int;		/*正确,改变标识符中的字母为大写*/
  • 标识符的命名最好具有相关的含义

  将标识符设定成有一定含义的名称,不但可以方便程序编写,而在在以后回顾程序时,或让他人阅读时,会更容易读懂。如果没有一定的含义,没有后面的注释就很难使人理解要代表的作用是什么。

int a;		/*代表长度*/
int b;		/*代表宽度*/
int c;		/*代表高度*/

int iLong;
int iWidth;
int iHeight;
  • ANSI 标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分,因为有些编译程序(如IBM PC 的 MS C)仅能识别前 8 个字符。

四、数据类型

  程序在运行时要做的内容就是处理数据。程序要解决复杂的问题,就要处理不同的数据。
  在 C 语言中有很多不同的数据类型,其中包括基本类型、构造类型、指针类型和空类型等。

(一)基本类型

  基本类型就是C语言中的基础类型,其中包括整型、字符型、实型(浮点型)、枚举类型。

(二)构造类型

  构造类型是使用基本类型的数据,或使用已经构造好的数据类型,进行添加、设计,构造出新的数据类型,使新的构造的类型能满足待解决问题所需要的数据类型。
  构造类型是由多种类型组合而成的新类型,其中每一组成部分称为构造类型的成员
  构造类型包括数组类型、结构体类型和共用体类型 3 种形式。

(三)指针类型

  指针类型不同于其他类型,其值表示的是某个内存地址

(四)空类型

  空类型的关键字是 void ,当函数不必返回一个值时,就可以使用空类型设定返回值的类型。

空类型 void 主要的作用:

  • 对函数返回的限定
  • 对函数参数的限定

五、常量

  常量是其值在程序运行过程中不可以改变的量。其重要有三大类,数值型常量(包括整型常量和实型常量)、字符型常量以及符号常量

(一)整型常量

  整型常量有长整型、短整型、符号整型和无符号整型。

整型的取值范围:

  • 无符号短整型的取值范围是 0~65535,而符号短整型的取值范围是 -32768~+32767,都是16位整型常量的范围
  • 如果整型是32位的,无符号整型的取值范围是 0~4294967295,而有符号整型的取值范围是 -2147483648~+2147483647,如果整型是16位的,就与无符号短整型的范围相同。
  • 长整型是 32 位的。

  在编写整型常数时,可在常量后面加上符号 L 或 U 进行修饰。L 表示长整型常量,U 表示无符号整型常量。(后缀字母不分大小写)

LongNum = 100L;			/*L 表示长整型常量*/
UnsignLongNum = 500U;	/*U 表示无符号整型常量*/

1、八进制整数

  数据表示八进制,需要在常数前加上 0 进行修饰,八进制包含数字时 0 ~ 7 之间。

OctalNumber1 = 0123;			/*常数前加上 0 代表八进制*/
OctalNumber2 = 0432;

OctalNumber3 = 356;				/* 错误,没有前缀0 */
OctalNumber4 = 0492;			/* 错误,包含了非八进制数9 */

2、十进制整数

  数据表示十进制,不需要添加前缀,十进制包含数字时 0 ~ 9 之间。

AlgorismNumber1 = 123;	
AlgorismNumber2= 456;
  • 整形数据以二进制的方法存放在计算机中,数值是以补码的形式进行表示的
    正数的补码与其原码形式相同,负数的补码是将该数绝对值的二进制形式按位取反后再加 1 得到的。
    对于有符号整数,在内存中存放的最左面的一位表示符号位,如果该位为 0,则说明该数为正,若为 1 ,则说该数为负

3、十六进制整数

  数据表示十六进制,需要在常数前加上 0x 前缀,十六进制包含数字时 0 ~ 9 以及字母A ~ F(或 a ~ f,不区分大小写)

HexNumber1 = 0x123;			/*常数前加上前缀 0x 代表十六进制*/
HexNumber2 = 0x3ba4;

HexNumber3 = 356;				/* 错误,没有前缀0x */
HexNumber4 = 0x89j2;			/* 错误,包含了非十六进制数的字母 j */

(二)实型常量

  实型也称为浮点型,由整数部分和小数部分组成,并用十进制的小数点进行分隔。表示实数的方式有科学计数方法指数方法

1、科学计数法

  科学技术方法就是使用十进制的小数方法描述实型

SciNum1=123.45;		/*科学计数法*/
SciNum2=0.5458;

2、指数方法

  有时候实型非常大或者非常小,使用科学计数方式是不利于观察的,可以使用指数方法显示实型常量,使用字母e或者E进行指数显示

SciNum1=1.2345e2;	/*指数方式显示*/
SciNum2=5.458e-1;

  在编写实型常量时,在常量的后面加上符号 F 或者 L 进行修饰F 表示该常量是 float 单精度类型,L 表示该常量为 long double 长双精度类型

FloatNum=1.2345e2F;			/*单精度类型*/
LongDoubleNum=5.458e-1L;	/*长双精度类型*/

  若不在后面加上后缀,默认状态下,实型常量为 double 双精度类型。(后缀字母大小写通用

(三)字符型常量

1、字符常量

  使用单撇号括起一个字符,这种形式就是字符常量。

  • 字符常量中只能包括一个字符,不是字符串。例如:'A’是正确的,但是用’AB’来表示字符常量就是错误的。
  • 字符常量是区分大小写的。例如:'A’字符和’a’字符是不一样的,这两个字符代表着不同的字符常量。
  • ’ '这对单撇号代表着定界符,不属于字符常量中的一部分。

【实例】使用 putchar 函数将单个字符常量进行输出,是的输出的字符常量形成一个单词 Hello 并显示在控制台中。

#include<stdio.h>

int main()
{
	putchar('H');		/*输出字符常量H*/
	putchar('e');		/*输出字符常量e*/
	putchar('l');		/*输出字符常量l*/
	putchar('l');		/*输出字符常量l*/
	putchar('o');		/*输出字符常量o*/
	putchar('\n');		/*进行换行*/
	return 0;
}

2、字符串常量

  字符串常量是用一组双引号括起来的若干字符序列。如果在字符串中一个字符都没有其称作空串,此时字符串的长度为 0。
  C语言中存储字符串常量时,系统会在字符串的末尾自动加一个“\0”作为字符串的结束标志。
  例如字符串“welcome”在内存中的存储形式如图所示。

  注:在程序中编写字符串变量时,不必在字符串的结尾处加上 “\0” 结束字符,系统会自动添加结束字符。

字符常量与字符串常量区别

  • 定界符使用不同。字符常量使用的是单直撇(单引号),而字符串常量使用的是双引号
  • 长度不同。字符常量只能是一个字符,长度为1;字符串常量的长度可以是 0 ,可以任意数,字符数只有1个,长度也不是1,而是 2 。
  • 存储的方法不同。字符常量中存储的是字符的 ASCII码值;字符串常量中,不仅要存储有效的字符,还有存储结尾标志 “ \0 ”

(四)转义字符

  转义字符在字符常量中是一种特殊的字符。转义字符是以反斜杠 “\”开头的字符,后面跟一个或几个字符。

转义字符意 义转义字符意 义
\n回车换行\\反斜杠“ \ ”
\t横向跳到下一指标位置\’单引号符
\v竖向跳格\a鸣铃
\b退格\ddd1~3位八进制数所代表的字符
\r回车\xhh1~2位十六进制数所代表的字符
\f走纸换页

(五)符号常量

  使用符号名代替固定的常量,称为符号变量。【实例】 符号常量的使用来表示圆周率。

#include<stdio.h>
#define PAI 3.14							/*定义符号常量*/
int main()
{
	double fRadius;							/*定义半径变量*/
	double fResult=0;						/*定义结果变量*/
	printf("请输入圆的半径:");				/*提示*/
	scanf("%lf",&fRadius);					/*输入数据*/
	fResult=fRadius*fRadius*PAI;			/*进行计算*/
	printf("圆的面积为:%lf\n",fResult);		/*显示结果*/
	return 0;								/*程序结束*/
}

尾注

  本章节未完,后半章内容会尽快更新的。
  希望这篇笔记文章对你有所帮助,记得转载、点赞、收藏,支持一下,小编将会持续更新哦

更多推荐

【C语言】C语言从入门到精通 | 第3章 数据类型(一)— 自学笔记