C语言之初识C语言

目录

1.C语言的定义
2.C语言的编译连接过程
3.第一个C语言程序
4.数据类型
5.变量 常量 标识符

1.C语言的定义

   C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且C语言的处理和表现能
力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及
对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。 1982年成立C标准委员会,建立C语言的标准。1989年,
ANSI发布了第一个完整的C语言标准一ANSIX3.159,简称“C89”。1999年,在做了一些必要的修正和完善后,ISO(International
Standards Organization),又发布了新的C语言标准,命名为ISO/IEC9899:2011,简称“C11”。

2.C语言的编译链接过程

   在C/C++语言中,*.c/*.cpp源文件(文本),*.h头文件(文本),*.i预编译文件(文本),*.s汇编文件,*.o/*.obj二进
制目标文件,以上为不可执行文件。*.exe可执行文件。

3.第一个C语言程序

//hello.c                       
#include<stdio.h>			     	//预编译处理
int main() 
{						//主函数
	printf("Hello World!\n");		//程序语句
	return 0;
}
C语言程序结构特点:
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即函数。
4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 
5.每一个说明,每一个语句都必须以分号结尾。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

4.数据类型

4.1数据类型
char、short、int、long int、long long;
float、double、long double;
bool(布尔类型);
void;

4.2数据类型大小

//sizeof关键字 计算数据类型所占字节个数
#include<stdio.h>
int main() 
{
	printf("char size:			%d\n", sizeof(char));
	printf("short size:			%d\n", sizeof(short));
	printf("int size:			%d\n", sizeof(int));
	printf("long int size:		%d\n", sizeof(long int));
	printf("long long size:		%d\n", sizeof(long long));
	printf("float size:			%d\n", sizeof(float));
	printf("double size:		%d\n", sizeof(double));
	printf("long double size:	%d\n", sizeof(long double));
	printf("bool size:			%d\n", sizeof(bool));
	return 0;
}

char:1字节、short:2字节、int:4字节、long int:4字节、long long:8字节;
float:4字节、double:8字节、long double:8字节(VS2019);
bool:1字节;

5.变量 常量 标识符

5.1变量
5.1.1变量的定义:以某标识符为名字,其数值可以改变(可读(获取,可取值),可写(赋值))
5.1.2局部变量:在函数中定义的变量。
5.1.3全局变量:在函数外定义的变量

#include<stdio.h>
//全局变量 局部变量
int g_sum = 100;			//全局变量
int main() 
{
	int a = 10;				//局部变量
	int g_sum = 8;			//局部变量和全局变量同名
	a = g_sum;				//?100,8
	printf("a=%d\n",a);
	return 0;
}

运行结果:
在这里插入图片描述
5.2常量
5.2.1常量其值不可改变(只可读,不可写)
5.2.2分类:
①字面常量
②用#define定义的宏常量
③用const关键字修饰的变量,称为常变量
④枚举类型
⑤字符常量和字符串常量

#include<stdio.h>
#define PI  3.14;					//宏常量
enum week 
{							//枚举类型
	Mon = 1,
	Tues = 2,
	Wed = 3,
	Thurs = 4,
	Fri = 5,
	Sta = 6,
	Sun = 7
};
int main() 
{
	const float r = 10.8f;			//用const修饰的常变量 只可取值,不可赋值
	float s = 0.0f;
	s = r * r * PI;					//PI宏常量
	enum week w = Mon;				//枚举常量
	printf("s = %f\n",s);
	printf("w = %d\n",w);
	return 0;
}

运行结果:
在这里插入图片描述
5.3定义与声明
5.3.1定义:所谓定义就是为这个变量分配到一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。需注意,这个名字一旦和这块内存匹配起来,它们就是同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你定义同一个变量或对象。
5.3.2声明:①告诉编译器这个名字已经匹配到一块内存上了。②告诉编译器,我这个名字已经被我预先预定了,别的地方再也不能用它来作为变量名。
注:定义与声明的最重要的区别是定义创建了对象并为这个对象分配一块内存,而声明的时候没有分配内存空间的。

#include<stdio.h>
int main()
{
	int sum = 8;	//int:类型名 sum:标识符变量名  8:字面常量
	return 0;
}

在这里插入图片描述
5.4标识符
5.4.1字符常量与字符串常量
单引号是字符的定界符:‘a’–>97
双引号是字符串的定界符:“a”–>97 \0
5.4.2转义字符
定义:转义字符以反斜杠"\ “开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义。
在这里插入图片描述
注意:
①区分,斜杠:”/“与反斜杠”\ ",此处不可互换。
②\xhh 十六进制转义不限制字符个数。如:’\x000000000000F’–>‘xF’。
③转义字符只能用小写字母,否则转义字符被忽略;如’\N’–>‘N’。
④\v 垂直制表符和\f 换页符对屏幕没有任何影响,只会影响打印机执行响应操作。
⑤\t 光标向前移动四个或八格,编译器里设置。
⑥\ ’ 字符里(即单引号里)与使用字符串里(即双引号里)只要用 ’ 即可。
⑦\ ? 其实就是 ?。
⑧转义字符可以把字符转义为其他意义,还可以把定界符和转义符转换为字符意义。
如:’ \ ’ ‘–>’
’ \ \ '–> \

#include<stdio.h>
//转义字符
int main() 
{
	char a = '0';
	char b = 0;
	char c = '\0';				//空字符
	char d = 'a';
	char e = '\'';				//代表一个单引号字符
	char f = '\\';				//代表一个反斜杠字符
	printf("a=%d,b=%d,c=%d,d=%d,e=%c,f=%c\n",a,b,c,d,e,f);
	const char* filename1 = "c:\\tu\\run\\node.tex";
	printf("filename1 = %s\n",filename1);
	const char* filename2 = "c:\tu\run\node.tex";	//\t水平制表符  \r回车符 将当前位置移到本行开头 \n换行符
	printf("filename2 = %s",filename2);
	return 0;
}

运行结果
在这里插入图片描述
总结:
转义字符既可以用于单个字符,也可以用于字符串,并且一个字符串中可以同时使用八进制形式和十六进制形式。
转义字符的初衷是用于ASCII编码,所以它的取值范围有限:

  1. 八进制形式的转义字符最多后跟三个数字,即\ddd 最大取值是\177
  2. 十六进形式的转义字符最多后跟两个数字,即\xdd 最大取值是\x7f

单引号、双引号、反斜杠是特殊的字符,不能直接表示:

  1. 单引号是字符类型的开头和结尾,要使用 \ ’ 即’\ ‘’
  2. 双引号是字符串的开头和结尾,要使用\ ‘‘表示,即’‘abc\ ‘’ 123’’
  3. 反斜杠是转义字符的开头,要使用\ \表示,即’‘tu\ \1024’’
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值