1 1.为什么要学C语言
2 原因如下:
3
4 ·C语言可以作为学习计算机程序设计语言的入门语言;
5
6 ·C语言是编写操作系统的首选语言,与计算机硬件打交道时灵巧且高效;
7
8 ·C语言具有现代高级程序设计语言的基本语法特征;
9
10 ·常用的面向对象程序设计语言例如C++和Java,其基本语法源于C语言;
11
12 ·许多C语言编写的软件系统需要维护;
13
14 ·用于要求程序高速运行领域的编写,例如单片机程序、嵌入式系统软件和通信程序等;
15
16 ·游戏设计者和黑客少不了C语言;
17
18 ·C语言使用者和爱好者众多。
19
20 2.什么是C语言
21 C 语言是一门通用 计算机编程语言 ,广泛应用于底层开发。 C 语言的设计目标是提供一种能以简易
22 的方式 编译 、处理低级 存储器 、产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程
23 语言。
24
25 尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式 处理器 (单片机或称 MCU )以及 超级电脑等作业平台。
26
27 二十世纪八十年代,为了避免各开发厂商用的C 语言语法产生差异,由 美国国家标准局 为 C 语言制 定了一套完整的美国国家标准语法,称为 ANSI C ,作为 C 语言最初的标准。 [1] 目前 2011 年 12 月 8 日,国际标准化组织(ISO )和国际电工委员会( IEC )发布的 C11 标准 是 C 语言的第三个官方标 准,也是C 语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。
28 C 语言是一门面向过程的计算机编程语言,与 C++ , Java 等面向对象的编程语言有所不同。
29 其编译器主要有 Clang 、 GCC 、 WIN-TC 、 SUBLIME 、 MSVC 、 Turbo C 等。
30 第一个C语言程序 hello world
31
32 C语言中没有string类型。
33
34 string类型是 C++、java、VB等编程语言中的。 在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。string 是C++标准程序库中的一个头文件,定义了C++标准中的字符串的基本模板类std::basic_string及相关的模板类实例。
35
36 而在C语言中,C语言中没有字符串类型,字符串是存放在字符型数组中的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符'\0'作为结束标志 。
37
38 4.变量、常量
39 变量:生活中的有些值是不变的(比如:圆周率,性别(?),身份证号码,血型等等) 。
40 分类:局部变量;全局变量
41 #include <stdio.h>
42 int global = 2021;//全局变量
43 int main()
44 {
45 int local = 2021-5;//局部变量
46 //下面定义的global同名不会有问题,因为局部变量优先级优于全局变量
47 int global = 2021-5-1;//局部变量
48 printf("global = %d\n", global);
49 return 0; }
50 变量的作用域和生命周期
51 作用域
52 作用域(scope ),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 /可用
53 的 而限定这个名字的可用性的代码范围就是这个名字的作用域。
54 1. 局部变量的作用域是变量所在的局部范围。
55 2. 全局变量的作用域是整个工程。
56 生命周期
57 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
58 1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
59 2. 全局变量的生命周期是:整个程序的生命周期
60 //static修饰全局变量,改变了变量的作用域,让这个变量只能在静态的全局变量只能在自己所在的源文件内部使用,出了源文件就不能使用
61 int main() {
62 extern int g_val;
63 //extern声明外部符号的-----与add.c文件连用
64 printf("g_val=%d\n",g_val);
65 return 0;
66 }
67
68
69 //static修饰时 不会销毁,会累积,当修饰局部变量时,局部生命周期变长
70 void test() { //test()为定义函数
71 static int a = 1; //int a = 1时,完成一次后,变会销毁,内存会还给系统
72 a++;
73 printf("a=%d\n",a);
74 }
75 int main() {
76 int i = 0;
77 while (i < 5) {
78 test();
79 i++;
80 }
81 //printf("%d\n", i);
82 return 0;
83 }
84
85 常量: 有些值是可变的(比如:年龄,体重,薪资)
86
87 C 语言中的常量和变量的定义的形式有所差异。
88 C 语言中的常量分为以下以下几种:
89 字面常量
90 const 修饰的常变量
91 #defifine 定义的标识符常量
92 枚举常量
93 #include <stdio.h>
94 //举例
95 enum Sex
96 {
97 MALE,
98 FEMALE,
99 SECRET
100 };
101 //括号中的MALE,FEMALE,SECRET是枚举常量
102 int main()
103 {
104 3.14;//字面常量
105 1000;//字面常量
106 const float pai = 3.14f; //const 修饰的常量;3.14f是强行转换精度类型
107 const int pai = 5.14;//
108 #define MAX 100 //#define的标识符常量
109 return 0;
110 }