C语言入门篇(一)

前言
  欢迎各位小伙伴,这一篇,只是为了让我们对C语言有一个大概的认识,每个知识点并不会讲的很深,之后我也会持续更新博客,对这些知识进行拓宽,进行更细致的描述。

初识C语言

  • 1. 什么是C语言
  • 2. 第一个C语言程序
  • 3. 数据类型
  • 4. 变量&常量
    • 4.1 定义变量的方法
    • 4.2 变量的命名
    • 4.3 变量的分类
    • 4.4 变量的作用域和生命周期
    • 4.5 常量
  • 5. 字符串&转义字符
    • 5.1 字符串
    • 5.2 转义字符
  • 6. 注释
  • 结束语

1. 什么是C语言

C语言是一门面向过程的、抽象化的计算机编程语言,广泛应用于底层开发。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。
了解更多

2. 第一个C语言程序

#include
int main()
{
    printf("hello world\n");
    return 0;
}

麻雀虽小,五脏俱全。这段代码是我们接触C语言时,遇到的第一个代码,虽然很短,但对我们认识C语言有很大的帮助。

要注意的是:

  • 使用printf()函数就一定要在头文件中加入#include
  • 一个C程序中一定会有一个main函数,也只能有一个main函数
  • main函数是程序的入口。程序第一个读取的就是main函数,而不是第一行
  • printf()是格式输出函数
  • \n是转义字符,表示换行
  • return是函数的返回值,根据函数类型的不同,返回的值也是不同的

3. 数据类型

以下给我们以后会用到的一些基本类型:

char				//字符数据类型
short				//短整型
int					//整型
long				//长整型
long long			//更长的整型
float				//单精度浮点数
double				//双精度浮点数

对不同的对象,我们用不同的数据类型表示更具有代表性。
比如姓名,年龄,身高,我们可以用不同的数据类型来表述,这样更准确,也易于分类。

char ch[20]='zhangsan';			//姓名
int age=18;						//年龄
float h=168.3f;					//身高

这几种数据类型所占内存的空间大小会相同吗?

大家可以将下面代码在自己的编译器上实现,看看运行的结果:

#include
int main()
{
	printf("%d\n",sizeof(char));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

sizeof()函数是用来计算数据及数据类型所占空间的大小的,单位是字节

4. 变量&常量

在生活中,有不改变的量(血型,身份证号),也有变化的量(年龄,身高)
在C语言中,把不会改变的量,用“常量”表示;变化的量,就用“变量”表示

4.1 定义变量的方法

char ch='j';
int age=18;
double h=1.68lf;

变量创建的本质:是在内存中开辟一块空间,存放数据

4.2 变量的命名

变量的命名是有规则:

  • 只能由数字、字母、下划线(_)组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分字母大小写。
  • 变量名不能使用关键字。

4.3 变量的分类

  • 局部变量
  • 全局变量
#include
int a = 1;					 //全局变量	
int main()
{
	int b = 2;				 //局部变量
	printf("%d %d\n", a, b); //输出结果:1 2
	return 0;
}

这里,我们在{ }外面定义的变量a就是全局变量,在main()函数内部的变量b 就是局部变量。

那么当b与a同名时,输出结果会是什么呢?

#include
int a = 1;					 //全局变量	
int main()
{
	int a = 2;				 //局部变量
	printf("%d %d\n", a, b); 
	return 0;
}

运行结果:
C语言入门篇(一)_第1张图片
当局部变量与全局变量同名的时候,局部变量优先使用

4.4 变量的作用域和生命周期

  • 作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域

1.局部变量的作用域是变量所在的局部范围。
2.全局变量的作用域是整个工程。

  • 生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
这里的销毁是,把空间还给操作系统

1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。

我们进一步了解一下变量的作用域与生命周期

C语言入门篇(一)_第2张图片这段代码中,我们定义的变量a在第二个{}里,即它的作用域,出了这个{}就不起作用了。

如果我们希望输出a,就需要在{}前先做
定义。
代码如下:

#include
int main()
{
	int a = 10;
	{
		 a = 5;
	}
	printf("%d\n", a);
	return 0;
}

运行结果:
C语言入门篇(一)_第3张图片
说明:
如果源文件需要引用其他文件中的变量,我们可以在文件中用extern声明

C语言入门篇(一)_第4张图片能够被其他模块以extern修饰符引用到的变量通常是全局变量。

4.5 常量

C语言中的常量分为以下几种:

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量
  • 枚举常量
#include
enum color
	{
		RED,GREEN,BLUE//枚举常量
	};
int main()
{
	//字面常量
	3.14'a';//字符
	"abc";//字符串
	
	//const修饰的常变量
	const int pi=3.14f;//这里的pi是const修饰的常变量,具有常属性,但本质还是变量
	pi=2.6;//pi是不能直接修改的
	//变量一旦定义就不能修改

	//#define
	#define SIZE 10
	printf("size = %d\n",SIZE);//输出:10
	
	//枚举常量
	printf("%d\n",RED);//输出:0
	printf("%d\n",GREEN);//输出:1
	printf("%d\n",BLUE);//输出:2
	//枚举常量的默认是从0开始,依次向下递增1
	
	return 0;
}

5. 字符串&转义字符

5.1 字符串

"hello world"

这种由双引号引起来的一串字符称为字符串字面值,简称为字符串.

注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。

#include
#include
int main()
{
	char a1[] = "hello";//这里隐藏了\0
	char a2[] = { 'h', 'e', 'l', 'l', 'o' };
	char a3[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
	printf("%s\n", a1);
	printf("%s\n", a2);
	printf("%s\n", a3);
	return 0;
}

运行结果:
C语言入门篇(一)_第5张图片

C语言入门篇(一)_第6张图片调试代码,可以直观地看到’\0’就是字符串结束的结束标志。

我们也可以通过计算字符串的大小进一步证明:
C语言入门篇(一)_第7张图片

strlen()计算字符串的长度,即字符的个数,遇到’\0’结束,不包括结束字符’\0’
sizeof()计算的是数据所占空间内存的大小,单位是字节

5.2 转义字符

  • 转义字符顾名思义就是转变意思
    我们先看看下面的代码运行结果会是什么呢?
#include
int main()
{
	printf("c:\code\test.c\n");
	return 0;
}

运行结果:
C语言入门篇(一)_第8张图片在这里面就存在着一些转义字符。

转义字符 释义
? 在书写连续多个问号时使用,防止他们被解析成三字母词
用于表示字符常量
" 用于表示-一个字符串内部的双引号
\ 用于表示一个反斜杠,防止它被解释为-个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 换页符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd d d d表示1-3个八进制的数字。如: \130 表示字符X
\xddd d d表示2个十六进制数字。如: \x30 表示字符0

了解了转义字符后,我们可以看看下面代码中的字符串长度。

#include
#include
int main()
{
	printf("%d\n",strlen("c:\test\178\x65\test"));//13
	return 0;
}

6. 注释

  • 有不需要的代码行可以直接删除,也可以注释掉
  • 代码中有写代些代码不好理解,可以加入注释文字
#include
int Fun(int x, int y)//定义乘法函数
{
	return x*y;
}
/*C语言注释风格
int Sum(int x, int y)
{
	return x + y;
}
*/
int main()
{
	//C++注释风格
	//int a, b;
	//printf("%d\n", Sum(10, 20));//调用Sum函数,完成加法
	printf("%d\n", Fun(10, 20));//调用Fun函数,完成乘法
	return 0;
}

注释的两种风格:

  • C语言风格的注释 /xxxxxx/
    缺陷:不能嵌套注释
  • C++风格的注释 //xxxxxx
    可以注释一行也可以注释多行

结束语

以上就是我这次文章的分享,对C语言的几个基础概念进行了总结,希望对大家有所帮助。如果有不对的地方,还希望大家可以评论指正,我一定会及时来修改的。
  路漫漫其修远兮~
  我们下篇文章再见。
请添加图片描述

你可能感兴趣的:(c语言)