初见C语言——第一节C语言学习课

223 阅读4分钟

@[TOC] (目录)

什么是C语言?

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 在这里插入图片描述

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

在这里插入图片描述

我的第一个C语言程序

#include <stdio.h>
int main()	//main函数是程序的入口
			//一个程序中main函数有且仅有一个
{
printf("Hello,world!\n");
return 0;
}

运行结果截图: 在这里插入图片描述

数据类型

C语言里的数据类型

  • char 类型 -- 字符类型
  • short 类型 -- 短整型
  • long 类型 -- 长整型
  • long long 类型 -- 更长的整型
  • float 类型 -- 单精度浮点数类(小数)型
  • double 类型 -- 双精度浮点数型
  • long double 类型 -- 更长的双精度浮点数型

C语言中规定:只要占用的字节 long long >= long >= int
long double >= double 即可

#include <stdio.h>
int main()
{ 	// sizeof 运算符 -- 用来计算所占用的字节数(空间大小)
	printf("char字节数:%d\n", sizeof(char));
	printf("short字节数:%d\n", sizeof(short));
	printf("int字节数:%d\n", sizeof(int));
	printf("long字节数:%d\n", sizeof(long));
	printf("long long字节数:%d\n", sizeof(long long));
	printf("float字节数:%d\n", sizeof(float));
	printf("double字节数:%d\n", sizeof(double));
	printf("long double字节数:%d\n", sizeof(long double));
	return 0;
}

运行结果截图: 在这里插入图片描述

问:为什么要出现这么多数据类型?

存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。

比如: 假设一本书的作者叫张三,作者的名字就是一个字符类型的数据,可以存放到 char 字符类型里; 假设这本书的价格是32.8元,其价格就是一个浮点数类型的数据,可以把它存放到 float / double 浮点数类型里去; 假设这本书是2022年出版的,其出版年份就是一个整型类型的数据,可以把它存放到 int 整型类型里去。

常量和变量

日常生活中的有些值是不变的(比如:圆周率,性别,身份证号码等等) 有些值是可变的(比如:年龄,体重等等)

不变的值,C语言中用 常量 的概念来表示,变得值C语言中用 变量 来表示。

定义变量的方法

格式: 类型名 为这个变量取的名字 = 给它的赋值

例如

int  age = 18; 
// 类型名int  为这个变量取的名字age = 给它的赋值18
float hight = 175.2;
char name = 'Tom';

变量的分类

  • 局部变量( 作用范围为定义其的所在局部范围内,粗略的说是在定义它的大括号{ }内 )
  • 全局变量( 作用范围为整个程序项目,粗略的说是在主函数(main)外 ) 例如
#include <stdio.h>
int year = 2019;//全局变量--在主函数外
int main()
{
int local = 2018;//局部变量
int year = 2020;//局部变量
printf("year = %d\n", year);
return 0;
}

注意:虽然上面的代码:局部变量和全局变量的名字一样,而赋值却不一样,但是运行在局部变量的范围里时,全局变量会被屏蔽(暂时不生效),这里虽然可行,但是为避免歧义,不建议这样做!

总结: 当局部变量和全局变量同名的时候,局部变量优先使用。

变量的生命周期和作用域

图解: 在这里插入图片描述

生命周期:

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

#include <stdio.h>
int year = 2019;//全局变量 -- 生命周期为程序项目的开始--到程序项目的结束
int main()
{
int local = 2018;//局部变量 -- 生命周期为进入主函数--到出主函数
int year = 2020;//局部变量
printf("year = %d\n", year);
return 0;
}
  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个项目工程的生命周期。

什么是作用域?

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

#include <stdio.h>
int year = 2019;//全局变量 -- 作用域为整个项目程序
int main()
{
int local = 2018;//局部变量 -- 作用域为(被定义的{ })主函数内
int year = 2020;//局部变量
printf("year = %d\n", year);
return 0;
}
  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个项目工程。

写在最后

【本人新手学习C语言,菜鸟一个。如有写的错误与不妥,欢迎指正批评!】

认识C语言的第一节课,把自己所习记录下来分享,感谢你们的观看与点评,一起加油努力! 结尾