
《C》是由Dennis Ritchie在1970年代初期于AT&T贝尔实验室开发的一种通用编程语言。它被设计为一种结构化编程语言。
《C》编程语言起源于B语言,而B语言又基于BCPL(基本组合编程语言)。
尽管最初是为了设计UNIX操作系统而创建的,《C》迅速因其高效性和灵活性而获得了广泛的应用,使得程序员能够编写各种类型的软件。
《C》被认为是一种中级语言,因为它结合了高级语言和低级语言的元素。它提供了对低级内存操作的访问,但其语法和结构类似于高级语言,使其具有高度的通用性和效率。
为什么选择《C》而不是其他高级语言?
在如今,像Perl、PHP、Java等语言主导着编程世界的情况下,你可能会想,为什么《C》仍然广泛使用。
原因包括:
稳健性:《C》为创建高效和可靠的程序提供了坚实的基础。
丰富的内建函数库:《C》提供了丰富的函数库,用于执行各种操作,简化编程。
支持低级编程:尽管《C》的语法为高级语言,它依然支持低级内存操作,适用于系统编程。
适用于各种软件:《C》被用于编写系统软件、应用软件、商业应用等。
高效和快速:《C》编写的程序通常运行速度很快,得益于其强大的运算符和多种数据类型。
可移植性:《C》程序具有高度的可移植性,可以在不同的机器上运行,只需进行最小的修改。
可扩展和简洁:语言的简洁性使得开发者可以轻松地扩展和修改程序。《C》的标准库提供了丰富的函数,支持开发者的需求。
影响深远:许多现代编程语言,如C#、Java、JavaScript、Perl、PHP和Python,都受到了《C》的影响。
为什么大多数编程课程从《C》开始?
《C》通常是计算机科学课程中教授的第一门编程语言,原因在于其简洁性、高效性,并且能够教导一些基本的编程概念,如内存管理和指针的使用。
这些技能可以迁移到其他编程语言中,因此《C》是任何从事软件开发的人都应该掌握的关键语言。
《C》在现实世界中的应用
你知道吗?全球90%的超级计算机都运行Linux?Linux,作为许多服务器、智能手机,甚至是太空探索系统的核心,主要是用《C》编写的。仅Linux 3.2内核就有超过1500万行代码,这展示了
《C》在现代软件中的强大功能和相关性。
一句话总结,实践胜于千言万语。学习编程的最佳方式是编写你自己的代码。不要仅仅复制粘贴代码——通过创建自己的程序并从错误中学习来进行实践。
《C》程序结构
让我们解析一个简单的《C》程序:
#include指令告诉编译器从哪里找到外部代码文件,通常是包含函数原型的头文件(.h)。这些文件的内容会在编译时被复制到你的程序中。
#include <file>: 系统定义的头文件
#include "file": 用户定义的头文件
每个《C》程序必须包含一个main()函数,这是程序的入口点,也是执行开始的地方。一个程序中只能有一个main()函数。
int main(void) {
// 你的代码在这里
return 0;
}
在以下程序中,a、b、c和add是用于存储整数值的变量。
示例 1:三个数字的求和
#include <stdio.h>
int main() {
int a, b, c, add;
printf("Enter the first number: ");
scanf("%d", &a);
printf("Enter the second number: ");
scanf("%d", &b);
printf("Enter the third number: ");
scanf("%d", &c);
add = a + b + c;
printf("%d + %d + %d = %d\n", a, b, c, add);
return 0;
}
编译并运行程序:
保存程序为 first_prog.c
使用命令编译:gcc -o first_prog first_prog.c
运行:./first_prog
注意:《C》不区分大小写,main()等同于Main()。
示例 2:计算2的幂
#include <stdio.h>
#define N 16
int main(void) {
int n;
int val = 1;
printf("\t n \t 2^n\n");
printf("\t================\n");
for (n = 0; n <= N; n++) {
printf("\t%3d \t %6d\n", n, val);
val = 2 * val;
}
return 0;
}
示例 3:找出一个数的因子
#include <stdio.h>
int main(void) {
int n, lcv, flag;
printf("Enter value of N > ");
scanf("%d", &n);
for (lcv = 2, flag = 1; lcv <= (n / 2); lcv++) {
if ((n % lcv) == 0) {
if (flag) {
printf("The non-trivial factors of %d are: \n", n);
flag = 0;
}
printf("\t%d\n", lcv);
}
}
if (flag) {
printf("%d is prime\n", n);
}
return 0;
}
示例 4:斐波那契数列
#include <stdio.h>
int main(void) {
int n, i, current, next, twoaway;
printf("How many Fibonacci numbers do you want to compute? ");
scanf("%d", &n);
if (n <= 0) {
printf("The number should be positive.\n");
} else {
printf("\n\n\tI \t Fibonacci(I) \n\t=====================\n");
next = current = 1;
for (i = 1; i <= n; i++) {
printf("\t%d \t %d\n", i, current);
twoaway = current + next;
current = next;
next = twoaway;
}
}
return 0;
}
如果《C》从未存在过,会怎样?
想象一个没有《C》的世界。将不会有Linux、没有macOS、没有Windows、没有智能手机、没有微处理器,甚至可能没有我们所知的计算机。《C》对现代计算机产生了深远的影响,影响了许多其他语言和技术的发展。
要真正掌握编程,实践是关键。编写自己的代码,解决问题,尝试新的想法。如果遇到问题,不要犹豫,寻求帮助或参考如Tecmint等资源以获取最新信息。











