什么是c编程?学习基础知识
C是一种通用语言,用于将所有内容从桌面实用程序编程到整个操作系统,使其成为最重要的编程语言之一。作为用于在硬件设备和机器人中编程微控制器的主要语言之一,您可以期待C在Dev World中受到相当长的一段时间。
C语言的历史
乍一看,这么多程序员选择C.毕竟,这是一个古老的语言 - Dennis Ritchie在60年代后期和早期的70年代初开发了它。与更现代的高级别语言不同,(例如Java,C#和Python),C甚至没有面向对象的功能。
尽管如此,C的相对简单性是其最大的优势之一。结果,熟练的程序员可以在C中编写更快,更小,更高效的程序,而不是在诸如Java或Python等语言中进行的。对于速度关键的应用程序,微秒可能意味着成功和失败之间的差异。在嵌入式系统中,这可能是至关重要的。请记住,C比C ++更简单,这是C ++的“面向对象”的C ++,因此我建议在C ++之前学习C.
什么是c?一个Hello World举例
让我们来看看一个简单简单的C程序。通过传统,学习新语言时写一个新语言的第一个程序是显示文本“Hello World”的程序。这是“Hello World”代码看起来像在C:
#include main(){printf(“Hello World \ n”);}
此程序使用(即,使用此语句的C'标准代码库(STDIO)使用“包含”)代码:
#include
代码库是旨在执行某些相关操作的预先写入代码的集合。这里stdio.h是一个包含要处理输入和输出的功能的库。“输入”的示例将是在系统提示处输入的某些文本。“输出”的示例将是在提示处显示的文本。在这里printf()功能显示文本“Hello World”,后跟一个新的线“\ n”:
Printf(“Hello World \ n”);
标题文件
您可能已经注意到代码库的名称stdio.h,具有扩展名“.h”。这表明它是“标题文件”。标题文件包含代码库中各种函数的定义。当“包含”标题文件时,“将其内容插入(就像您在编译程序时将其复制并粘贴到它们)进入源代码。
编译C程序
C编译器(以及称为“链接器”的关联工具)是将源代码(在编辑器中写入的文本)转换为机器代码的程序。它是当程序运行时由操作系统执行的机器代码。C编译器可用于所有主要操作系统,包括Windows,MacOS和Linux。
许多现代语言,例如Java和C#编译源代码为“中间代码”或“字节码”而不是进入机器代码。软件程序运行中间代码,而C编译的机器代码直接由计算机硬件运行。这就是为什么c的一个原因
程序可以如此高效。它们直接与硬件通信,而不是由中间软件运行。
如果您使用的是Visual Studio或Codelite等IDE(集成betwayapp下载安装开发环境),则可能是显而易见的,因为IDE自动化此过程,您的源代码如何转换为机器代码。编译C程序需要三种不同的工具:预处理器,编译器和链接器。这就是他们所做的:
第1步:预处理器
预处理器是一个工具,用于处理散列#字符之前的特殊命令。例如,#include是一个processor命令以包含标题文件。
第2步:编译器
编译器将源代码转换为名为“对象代码”的中间代码格式。此对象代码已保存到一个名为“对象文件”的单独编译的文件中。
第3步:链接器
最后,所有单独的文件都在一个名为“链接”的过程中。这会创建最终的可执行程序,其中包含机器代码。链接器另外,从所需的任何对象库中的代码附加“链接”,例如,printf()函数的代码。
C怎么工作?
当您编写C程序时,必须以“主要函数”开始。“函数是命名代码块。主要功能是当程序本身运行时运行的第一位代码。主要功能从其名称开始(主要的),后跟一对括号。您要运行的代码括在一对卷曲括号之间。这是最简单的可能主要的功能。我还没有在卷曲括号内写入任何代码:
主要的() { }
在里面你好,世界程序我之前展示,我将一行代码添加到主要的功能。此代码调用printf() - 通过c为标准提供的函数 - 打印双引号之间的字符串(文本):
main(){printf(“hello world \ n”);}
当我们谈论“打印”一个字符串时,我们通常并不意味着字符串在纸上打印。我们的意思是它是“打印”标准输出。多年前,标准输出可能是打印机。这些天更有可能是电脑屏幕。
C程序的解剖学
每个C程序由关键字,函数和变量等元素组成。在本节中,我将快速总结C程序的主要元素。
Hello World Revisited.
让我们仔细看看我之前展示的简单“Hello World”程序。这次我已经编号了单独的代码。您将找到以下每个数字的解释:
#include1 2 main3()4 {5 printf6(“Hello World \ n”7); 8}
1. #include是一种预处理器指令。在这里它会导致文件的内容stdio.h.被包含在当前计划中。
2.尖尖括号<>,周围的文件名告诉编译器搜索该文件(这里的“标题”文件stdio.h.)在“C系统”目录中。
3.主要是程序启动时运行的函数的名称。
4.主要的一对括号显示在主题之后,这是一个没有参数的函数。
5. CURLY括号{}分隔代码块。在这里,它们附上了主要功能的代码。
6. printf()是文件中定义的函数stdio.h.。
7.“hello world \ n”是一串字符,在括号之间传递给printf()函数;“\ n”是“纽诺”的性格。
8.分号终止了该陈述。
弦
以其他语言编程的人往往很惊讶地发现C没有字符串数据类型。在C中,字符串是由空字符终止的字符串序列,'\ 0'。这是因为,就计算机硬件而言,数字和字符是唯一的基本类型。
在c中,字符串只是一个数组 - 一个线性列表 - 字符。该数组存储在内存中的地址处。当您使用C中的字符串时,您需要访问起始地址,然后在找到NULL之前计算所有字符。许多其他语言隐藏了处理内存地址的详细信息。在C中,您将经常需要访问存储在内存中的地址中的数据。要做到这一点,你需要了解指针。
指针
C中的指针变量是一个标识符,如APTR,存储一条数据的地址。地址只是一个数字。该数字表示内存中的位置。因此,例如,字符串“Hello World”可能存储在存储器位置2686746上。程序员可以将该数据创建为像这样的字符数组:
char str1 [] =“Hello World”;
上面的声明显示了命名的变量str1.是一个数组(因为它被Char数据类型的方括号声明)。字符串“Hello World”的字符被放入该数组中,它们存储在内存中的地址。如果我想要参考该地址,我需要将其存储在指针变量中。使用像这样的“星星”或星号声明指针变量:
char * actr;
我可以将str1的地址存储在指针变量中APTR.像这样:
aptr = str1;
指针是在C中掌握的最困难的事情之一。在许多更现代语言中,如Java,C#和Python,您可能永远不需要使用指针。那些语言隐藏程序员的指针。c不隐藏指针。C程序员必须一直使用指针。
新手C程序员可能会发现这一非常具有挑战性。但是,指针给出了经验丰富的C程序员,可以非常快速地访问内存以获得极高效率。C的效率是为什么它仍然优选为系统编程语言的主要原因。C是编写操作系统和设备驱动程序或编程微控制器和硬件设备时的伟大选择。
概括
我希望你现在有一些想法为什么C是一种非常强大的学习语言。它没有常见于其他主流语言的面向对象的功能。但它确实给了程序员对内存和硬件的大量控制。这就是为什么C经常被称为低级语言。它以一种非常接近计算机本身工作方式的方式工作。这就是为什么C继续成为最重要的计算机编程语言之一。
要了解有关C编程的更多信息,请查看我们的教程C数据类型那C语法, 或者对于C中的循环。有关更多实践的经验,请查看我们的名单C编程项目。无论您决定首先尝试,您都可以依靠您在掌握C的路径中学到的背景知识。