【C语言必知必会 | 第一篇】C语言入门,这一篇就够了

引言

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。它在编程语言中具有举足轻重的地位。
此文为【C语言必知必会】系列第一篇,带你初步了解C语言,为之后的学习打下基础

在这里插入图片描述


1️⃣发展历史

C语言起源于美国贝尔实验室的贝尔实验室,由丹尼斯·里奇和肯尼斯·汤普森于20世纪70年代初期开发而成。起初,他们使用B语言对UNIX操作系统进行了改进,并逐步将其重写成了C语言。

随着UNIX的发展,C语言也得到了不断的完善和推广。为了确立C语言的标准,许多专家、学者和硬件厂商参与组建了C语言标准委员会。1989年,他们发布了第一个完整的C语言标准,即ANSI C(C89)。

在这里插入图片描述

随后,C语言标准经历了多次修订和更新。1999年发布了C99标准,其中包含了一些新的特性和语法改进。2011年发布了C11标准,进一步扩展了C语言的功能和表达能力。

C语言以其简洁、高效、可移植性和广泛应用性而闻名。它成为了许多编程领域的首选语言,包括系统级编程、嵌入式系统开发、操作系统设计等。 许多重要的软件和工具,如UNIX、Linux和MySQL等,都是使用C语言开发的。

截至目前,在计算机科学和软件工程领域,C语言仍然是一门重要且广泛应用的编程语言,对后续语言的发展也产生了深远的影响。


2️⃣语言特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。

C语言具有以下几个主要的语言特点:

1.C语言的语法相对简单,并且提供了一些核心的编程结构,使得程序员可以用更少的代码实现功能。C语言的底层控制和内存管理能力使其在编写高效的程序时具有优势。

2.C语言是一种面向过程的编程语言,它侧重于按照顺序执行一系列操作步骤,通过函数调用和模块化的方式组织代码。这种特点使得C语言非常适合系统级编程和底层开发。

在这里插入图片描述

3.可移植性强:C语言的标准化以及对底层硬件的直接访问使得它在不同平台和操作系统上具有很高的可移植性。C语言编写的程序通常可以在多个系统上进行编译和运行。

4.C语言提供了指针的概念,允许直接访问和操作内存地址。 这为程序员提供了更高的灵活性和对底层资源的直接控制能力。

在这里插入图片描述

5.C语言提供了广泛的标准库,包含了大量的函数和工具,可以方便地进行文件操作、字符串处理、内存分配等常见任务。

总而言之,C语言以其简洁高效可移植底层控制能力而闻名,成为广泛应用于系统级编程、嵌入式开发和底层软件开发的重要语言。


3️⃣语言组成

数据类型:

C语言中的数据类型用来定义变量的性质和存储空间的大小。常见的数据类型包括整型(int)浮点型(float、double)字符型(char),以及派生的复杂数据类型如结构体(struct)枚举(enum)等。

常量与变量:

在C语言中,常量是指在程序执行期间值不会改变的数据。常量可以是字面值(如整数、浮点数、字符等)或使用const关键字进行声明。变量是用于存储和表示可变数据的标识符。 在使用变量之前,需要先声明并指定其数据类型。

注意: 变量名是由字母、数字和下划线组成的标识符,且不能以数字开头。变量名区分大小写,例如myVariable和myvariable是不同的变量名。

数组:

数组是相同数据类型的元素按一定次序排列而成的集合。在C语言中,数组使用方括号[]来声明,并通过下标访问其中的元素。数组的大小在声明时确定,并且下标从0开始。

在这里插入图片描述

指针:

指针是用来存储变量地址的变量。通过指针,我们可以直接访问和操作内存中的数据。在C语言中,可以使用星号*来声明指针变量,并通过取地址运算符&获取变量的地址,或者通过解引用运算符*访问指针指向的值。

字符串:

字符串是由字符组成的数组,以空字符'\0'作为结束标志。在C语言中,可以使用字符数组或者指针来表示字符串,并通过一系列的字符串操作函数(如strcpy、strlen等)进行处理。

运算符:

C语言提供了各种各样的运算符,用于完成不同类型的运算任务。常见的运算符包括算术运算符(+、-、*、/等)、关系运算符(<、>、==等)、逻辑运算符(&&、||、!等)等。

算术运算符>逻辑运算符>赋值运算符

例如,表达式a + b * c中,乘法运算符的优先级高于加法运算符,所以先计算b * c,然后再与a相加。如果要先计算a + b,可以使用括号来改变优先级,如(a + b) * c

示例如下:

#include <stdio.h>

int main() {
    int a = 10, b = 5, c = 2;
    int result;

    result = a + b * c;         // 优先级:乘法 > 加法
    printf("a + b * c = %d\n", result);

    result = (a + b) * c;       // 优先级:括号 > 加法 > 乘法
    printf("(a + b) * c = %d\n", result);

    result = a / b + c;         // 优先级:除法 > 加法
    printf("a / b + c = %d\n", result);

    result = a / (b + c);       // 优先级:括号 > 加法 > 除法
    printf("a / (b + c) = %d\n", result);

    result = a % b + c * 2;     // 优先级:乘法 > 取模 > 加法
    printf("a %% b + c * 2 = %d\n", result);

    result = (a % b) + (c * 2); // 优先级:括号 > 取模 > 乘法 > 加法
    printf("(a %% b) + (c * 2) = %d\n", result);

    return 0;
}

结果如下:

在这里插入图片描述

了解运算符的优先级可以帮助我们编写正确和清晰的表达式,并避免出现不必要的错误。

关键字:

关键字又称为保留字,就是已被C语言本身使用,不能作其它用途使用的字。 例如关键字不能用作变量名、函数名等标识符。

数据类型关键字:
short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
signed:修饰整型数据,有符号数据类型。(C89标准新增)
unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)
restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。(C99标准新增)

在这里插入图片描述

复杂类型关键字:
struct:结构体声明。(K&R时期引入)
union:联合体声明。(K&R时期引入)
enum:枚举声明。(C89标准新增)
typedef:声明类型别名。(K&R时期引入)
sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)
inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

存储级别关键字:
auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。(K&R时期引入)
static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。(K&R时期引入)
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。(K&R时期引入)

#include <stdio.h>

int main() {
   register int i;  // 声明一个寄存器变量

   for (i = 0; i < 10; i++) {
       printf("%d ", i);
   }
   
   return 0;
}

在上面的代码中,我们使用register关键字声明了一个整型变量i,然后在for循环中使用它进行迭代。

在这里插入图片描述

extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。(K&R时期引入)
const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。(C89标准新增)
volatile:指定变量的值有可能会被系统或其他线程改变,强制编译器每次从内存中取得该变量的值,阻止编译器把该变量优化成寄存器变量。(C89标准新增)

这些概念是C语言中非常重要的基础知识,对于理解和编写C程序至关重要。


4️⃣总结

此文为 【C语言必知必会】系列之第一篇 ,带领读者初步了解C语言,为之后的学习打下坚实的理论基础。

后续将发布 【C语言必知必会】系列之第二篇:编译器的安装与使用,读者可订阅专栏持续跟进专栏更新。

  • 53
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 106
    评论
### 回答1: 非常感谢您的建议,我们会尽快为大家准备一篇关于C语言入门的学习笔记,帮助大家更好地掌握这门编程语言。我们会尽可能详细地介绍C语言的基本语法、数据类型、运算符、流程控制语句等内容,同时也会提供一些实例代码和练习题,帮助大家更好地理解和掌握C语言编程。希望我们的学习笔记能够对大家有所帮助,让大家更快地入门C语言编程。 ### 回答2: C语言是一门广泛应用于系统编程、嵌入式系统、游戏开发等领域的高级程序设计语言入门C语言对于软件开发工程师和计算机科学爱好者来说非常重要。 在C语言学习笔记中,我们首先需要熟悉C语言的基础知识,如数据类型、变量、运算符、流程控制语句和函数等。了解基础知识将会帮助我们更好地理解后续学习内容。 其次,学习C语言需要掌握一些编程基本技巧,如程序的模块化设计、调试和测试、程序的优化等。这些技巧可以帮助我们提高代码质量和效率。 同时,我们还需要了解C语言的高级编程特性,如指针、动态内存分配、结构体、文件操作等。掌握这些编程特性可以让我们更加灵活地进行编程。 最后,想要成为一名优秀的C语言程序员,我们需要不断实践和探索,不断完善自己的编程技能、提高编程水平。需要经常练习编写代码,加入开源社区进行开源项目的贡献和参与,与其他程序员交流经验,扩展自己的技术视野。 总之,学习C语言需要投入大量的时间和精力,需要不断地学习、实践和交流。但是,在通过不断地学习和实践后,C语言将成为你的强大工具,可以开发出各种高效、可靠的应用程序,实现自己的编程理想和目标。 ### 回答3: C语言是一门非常基础但又非常重要的编程语言,这门语言被广泛应用于各个领域,如嵌入式系统,操作系统开发等。C语言入门,是每个程序员必经的过程,通过学习C语言,我们掌握了基本的编程思想和方法,同时也为我们日后学习其他高级语言奠定了扎实的基础。 在这篇学习笔记中,我们可以学到C语言的各种基础知识点,例如数据类型、运算符、控制语句、函数等。这些知识点是C语言编程的基础,掌握它们非常重要。在学习的过程中,需要认真阅读教材,并且要动手实践,自己编写一些小程序,才能真正理解和掌握知识点。 除此之外,我们还可以通过学习C语言的标准库函数来扩展语言的使用范围,这些标准库函数非常常用,不仅可以方便快捷地实现某些功能,而且也是日后学习其他语言时会用到的知识点。 在学习C语言过程中,需要有一个良好的学习态度,要不断地做笔记、做练习,不断地复习、总结,才能够真正掌握这门语言,更好的为日后的编程生涯打好基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 106
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏,祝你平安喜乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值