如何通过这个初学者项目学习C编程

学习编程是一种累积的经验。除了学习所选语言的语法外,还必须学习所有编程语言所使用的一般原则。

理解和学习C编程可能会令人生畏,但是有一些基本概念值得您在何时熟悉开始。一个简单的项目是学习C语言基础的好方法。

那么您应该从哪里开始呢?通过打个招呼!

1。您好,世界!

几乎每门编码课程的第一部分都是 hello world 程序。详细介绍它会突出显示C与其他语言不同的一些方式。首先,打开您选择的文本编辑器或IDE,然后输入以下代码:

#include <stdio.h>/* this is a Hello World script in C */int main(void){  printf("Hello, World! \n");  return 0;}

这段简短的代码在结束程序之前会打印到控制台。将其保存为 hello.c 。现在,您需要编译并生成文件。

通常,您无需在计算机上安装任何其他软件即可运行C脚本。打开终端窗口(如果正在运行Windows,则打开命令提示符)并导航到保存脚本的目录。

编译和运行文件的方式因系统而异:

  • Windows用户:通过键入 cl hello.c 并按Enter键,使文件可执行。这将在同一文件夹中创建hello.exe,您可以通过键入 hello 来运行。
  • Linux和macOS用户:键入 gcc -o hello hello.c ,然后按Enter键使其可执行,然后通过键入 ./ hello 来运行它。
  • 使用的任何方法,都应运行脚本向您显示以下内容:

    如果它在Windows上不起作用,请确保以管理员模式运行命令提示符。对于macOS,您可能需要从App Store安装Xcode并从StackOverflow遵循这些步骤。

    现在,让我们逐行查看程序以了解其工作原理并进行改进!

    内幕:理解C语言

    您刚创建的脚本始于包含库。

    #include <stdio.h>

    该脚本的第一行称为< strong>预处理器。这是在脚本的其余部分编译之前执行的。在这种情况下,它告诉脚本使用 stdio.h 库。有很多预处理器可用于不同的任务。

    Stdio.h负责从程序用户处获取输入,并将信息输出回给他们。

    /* this is a Hello World script in C */

    下一行是一条评论。斜线和星号告诉编译器忽略它与结束星号和斜线之间的所有内容。尽管这似乎没有意义,但能够让自己和其他人清楚地了解代码的作用是养成的基本习惯。

    int main(void)

    每个C程序都必须具有 main 功能。 Main是一个返回整数的函数,用 int 表示。 main后面的括号是它的参数,尽管在这种情况下,不需要括号,这就是为什么使用 void 关键字的原因。

    您编写要在之间进行的代码两个花括号。

    {  printf("Hello, World! \n");  return 0;}

    在函数内部,您调用了 printf()函数。就像 main()一样,printf是一个函数。区别在于,printf是开始时包含的 stdio 库中的函数。

    Printf会将括号内的所有内容(包括引号)打印到控制台。 \ n 是一个称为换行符的转义序列,告诉编译器在继续之前跳到控制台的下一行。

    请注意,这些行以分号,编译器用来将一个任务与下一个任务分开。密切注意这些分号-导致它们出现问题的第一大原因就是缺少它们。

    最后,该函数返回数字0,从而结束程序。 main()函数必须始终返回一个整数,并且 return = 0; 向计算机发出信号,表明该过程已成功。

    了解每个步骤此脚本的开始是学习C语法以及该语言如何工作的良好起点。

    2。创建自己的C函数

    您可以在C语言中创建自己的自定义函数。与其在主函数中打印Hello World,不如创建一个新函数来为您完成。

    void print_for_me(){  printf("Hello, World! \n");}

    我们来分解一下。

    void 是一个关键字,表示以下函数将不会返回任何内容。

    print_for_me()是函数的名称,并且用方括号括起来表示该函数不需要参数即可工作。参数是传递给函数以使其起作用的任何信息-稍后您将添加自己的参数以更改输出! 注意:这与上面使用void的main()函数不同。该函数不能接受参数,而该函数可以接受参数(但在这种情况下不必这样做)。

    代码块应该为您所熟悉-只是打印而已

    现在,您可以从主函数调用此函数。

    int main(void){  print_for_me();  print_for_me();  return 0;}

    您可以在此处看到使用自己的函数的好处。不必每次都键入 printf(“ Hello,World!\ n"),您可以调用该函数两次。

    现在这似乎并不那么重要,但是如果您print_for_me函数包含许多代码行,因此能够如此轻松地调用它可以节省大量时间!

    这是编程的基本思想,您会在整个学习过程中遇到。一次编写您自己的函数,而不是一遍又一遍地编写相同的大代码。

    3。在C语言中使用函数原型

    原型是初学者C与其他语言不同的主要方式之一。简而言之,原型就像是稍后定义的功能的预览。如果在主函数之后编写print_for_me()函数,则在编译时可能会收到警告:

    该警告消息告诉您编译器在声明之前已经运行过print_for_me函数,因此无法确定程序运行时是否可以正常运行。

    代码仍然可以运行,但是可以通过使用原型完全避免警告。

    #include <stdio.h>void print_for_me();int main(void){  print_for_me();  print_for_me();  return 0;}void print_for_me(){  printf("Hello, World! \n");}

    在完整的程序中,您可以看到print_for_me()的原型存在于程序的开头,但不包含任何内容。原型函数向编译器显示该函数的外观以及是否需要参数。

    这意味着当您在主函数中调用该函数时,编译器会知道该函数是否被正确调用,并且可以如果需要,则抛出警告或错误。这可能现在看起来有些奇怪,但是现在了解它们将对将来有所帮助。

    该程序在没有原型的情况下仍然可以运行,但是使用它们是一种很好的做法。现在,输出看起来仍然相同,让我们对其进行更改以使其更加个性化!

    4。将参数传递给C函数

    对于此最后一步,您将要求输入用户名并记录其输入。然后,您将在之前创建的函数中使用它。在C语言中,单词不像其他编程语言一样被称为字符串。

    相反,它们是单个字符的数组。数组的符号为 [] ,关键字为 char 。首先在脚本的开头更新原型函数:

    #include <stdio.h>void print_for_me(char name[]);

    现在,编译器将知道该脚本后面的函数采用称为 name 的字符数组。到目前为止,此字符不存在。更新您的main函数以创建它,并使用它存储用户输入:

    int main(void){  char name[20];  printf("Enter name: ");  scanf("%s", name);  print_for_me(name);  print_for_me("Everyone!");  return 0;}

    main的第一行创建一个字符数组,该数组包含20个可能的名为name的空格。接下来,提示用户使用printf输入他们的姓名。下一行使用名为 scanf 的新功能,该功能接受用户键入的下一个单词。

    “%s" 告诉该功能将数据存储为字符串,并命名为 name

    现在,当调用print_for_me时,可以在括号中包括 name 。在下一行,您将看到也可以传递其他字符,只要它们在引号之间即可。两次,都将括号中的内容传递给print_for_me函数。

    现在进行修改以使用您提供的新信息:

    void print_for_me(char name[]){  printf("Hello, ");  puts(name);}

    在这里,您可以看到括号就像脚本开头的原型一样已经更新。在内部,您仍然可以使用printf打印问候。此处的新功能是 puts 。这是printf的高级版本。

    括号中的所有内容都将打印到控制台,并且会自动添加换行符(您之前使用的 \ n )。

    以与以前相同的方式保存和编译代码-请注意,如果您不想覆盖以前的程序,则可以给程序命名不同的名称。我将其命名为我的 hello2

    如您所见,该程序在接受“ Everyone!"的预设问候之前再次使用输入并在函数中使用它,再次给出两个

    C编程的基础知识

    该程序很简单,但其中的某些概念却并非如此。必须很好地编写更高级的C代码,以防止崩溃。这就是为什么许多人认为这是一门优秀的语言,因为它会向新的程序员灌输良好的习惯。

    其他人则认为学习C ++是一个更好的主意,因为它基于C并保留了较低的系统控制能力。 (还有Rust值得考虑,它是一种令人兴奋的编程语言,在语法上类似于C ++。)

    可以肯定的是:Python之类的语言对初学者更为友好。对于一门古老的语言,C仍然无处不在,但Python可能会成为未来的语言!

    标签: C 编码教程 编程