P1 初识C语言(1)
一、什么是C语言
1、定义
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
那计算机语言是什么呢?说白了就是人和计算机交流的语言,比如:C/C++/JAVA /Python。
2、发展
计算机语言的发展早期的计算机能够识别的语言叫二进制语言,我们知道电脑属于硬件,是需要通电,而电有正电和负电之分,即分别用1和0来表达,所组成的二进制序列具有一定的意义,所以人们早期编程都是二进制,可见编程时非常复杂,那既然这样,能不能用几个字母来代替这些二进制呢?之后人们就用几个字母(助记符)来表示这些二级制,所以用助记符来表达的这些语言叫汇编语言。但后来发现汇编语言也还是太麻烦,随后就出现了B语言,B语言的基础上出现C语言,C语言的基础上发展程C++。到C/C++语言这儿就叫高级语言。
二、第一个C语言程序
Hello World
#include<stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
三、数据类型
char--------------------//字符数据类型 short-------------------//短整型 int-----------------------//整形 long--------------------//长整型 long long--------------//更长整形 float--------------------//单精度浮点数 double-----------------//双精度浮点数
#include<stdio.h>
int main()
{
double d = 3.14;
printf("%lf\n", d);
return 0;
}
- 为什么会出现这么多的类型?
因为每一种数据类型对应所占用的内存的大小不同,就是为了咱们使用内存的合理性。比如:你要显示年龄20岁,却用int的话,空间就有点浪费了,这时候应该用short int。 - 每种类型的大小是多少?
#include<stdio.h>
int main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
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;
}
- 计算机里的计算单位。
bit -比特位-计算机最小单位 byte -字节 kb Mb Gb … 除了 1byte=8bit 外,它们之间的进制都是1024,比如1Mb=1024Kb。bit是计算机最小的单位,它只能存1/0,所以一个bit用来存放一个二进制位。 - 各数据类型能表达的数字的范围。
数据类型 | 范围 |
---|
char | 0~2^8-1 | short | 0~2^16-1 | int | 0~2^32-1 | long | 0~2^32-1 | long long | 0~2^64-1 | float | 0~2^32-1 | double | 0~2^64-1 |
四、变量,常量
#include<stdio.h>
int main()
{
short age = 20;
float weight = 95.5f;
return 0;
}
补充:C语言标准规定:sizeof(long)>=sizeo(int) 的件就可以。
- 变量与常量。
生活中不变的量,C语言中用常量来表示; 生活中变化的量,C语言中用变量来表示。 - 定义变量的方法。
公式:类型+变量名+值 例如:short age = 20; - 变量的分类。
定义:在代码块({})之外的变量称为全局变量,定义在代码块({})之内的变量称为局部变量。
#include<stdio.h>
int num1 = 20;
int main()
{
int num2 = 10;
return 0;
}
注意: 1)全局变量和局部变量的名字建议不要相同,相同容易误会而产生BUG。当全局变量和局部变量的名字相同时,局部变量优先级大于全局变量。 2)局部变量不能在它的范围外使用。如下代码,运行会报错。而全局变量在哪儿都可以使用。
#include<stdio.h>
int main()
{
{
int a = 10;
}
printf("%d\n");
return 0;
}
- 变量的使用。
例如: 两数之和。
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
scanf("%d%d",&num1,&num2);
sum = num1 + num2;
printf("sum = %d", sum);
return 0;
}
注意:如果编译器报C6031和C4996,检查代码是否含有如下两行代码:
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
- 变量的作用域和生命周期。
1)作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的的,而限定这个名字的可用性的代码范围就是这个名字的作用域。 通俗而言,就是这个变量哪里可用哪里不可用。 例如: A、局部变量作用域:只能在当前大括号内使用,即所在的局部范围。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
{
int num = 0;
printf("num = %d\n", num);
}
printf("num = %d\n", num);
return 0;
}
B、全局变量作用域:在整个工程任何地方可以使用,即整个工程。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int global = 2021;
void test()
{
printf("test()-- %d\n", global);
}
int main()
{
test();
printf("%d\n", global);
return 0;
}
补充:若要使用这个工程的另一个文件的全局变量,则需使用声明外部符号 extern int xxx; 。 C、局部变量生命周期:进入作用域生命周期开始,出作用域生命周期结束。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
{
int a = 10;
printf("a = %d\n", a);
}
printf("a = %d\n", a);
return 0;
}
D、全局变量生命周期:整个程序的生命周期。
未完待续!!!
以上所有课程笔记来自:@比特科技
|