bis̊mi allãhi alrāḥmani alrāḥīm
机器只理解二进制。当我们为计算机编写人类可读的指令列表时,机器只能理解我们现在所说的机器代码。该机器码仅由 1 和 0 组成。
使用一种称为编译器的特殊程序,我们可以将源代码转换为机器代码。
我们可以根据3个标准来判断好的代码:
如果我们想在C编程语言中在屏幕上打印一些文本,我们使用printf函数:
#includeint main(void) { printf("salom, dunyo\n") }
printf 函数打印文本 hello, world。其中的特殊\字符告诉编译器下一个字符是特殊指令。接下来的n符号表示“换行”(换行)。
代码第一行的表达式是一个非常特殊的命令,表示我们想要使用名为 stdio.h 的库的功能。这个库允许我们使用 printf 函数。
库是我们可以在代码中使用的现成函数的集合。
让我们用 C 语言编写一些代码,通过询问用户的名字来问候用户:
#include#include int main(void) { string answer = get_string("Ismingiz nima? "); printf("Assalomu alaykum, %s\n", answer); }
专门为 CS50 课程开发的 cs50.h 库的功能将在本课程中使用。其中之一是 get_string 函数。 get_string函数用于检索用户输入的文本。
答案是一个保留的地方,用于记住用户输入的特殊文本,我们称之为变量。答案的类型为 string。除了int、bool、char等之外,还有很多数据类型
%s 是一个名为 format code 的占位符,它告诉 printf 函数准备接受某个字符串变量。
还有其他数据类型的格式代码,例如:
%i 代表 int(整数)。
让我们要求用户输入 int 类型的 x 和 y 变量,并将输入的数字相互比较:
#include#include int main(void) { int x = get_int("x ni kiriting: "); int y = get_int("y ni kiriting: "); if (x 这里我们创建两个 int 类型的变量(整数),x 和 y。它们的值是使用cs50.h库的get_int函数填充的。使用条件运算符,我们比较 x 和 y 值,并根据结果在屏幕上显示一条消息。
框图是我们检查计算机程序如何工作的一种方式。通过这种方法我们可以检查代码的效率。
让我们看看上面代码的框图:
我们可以通过如下编码来改进程序:
#include#include int main(void) { int x = get_int("x ni kiriting: "); int y = get_int("y ni kiriting: "); if (x y) { printf("x soni y sonidan katta\n"); } else { printf("x soni y soniga teng\n"); } } 现在考虑所有可能的情况。我们看一下它的框图:
重复运算符
让我们打印“meow” 3次:
#includeint main(void) { printf("meow\n"); printf("meow\n"); printf("meow\n"); } 我们编写的代码工作正常,但我们可以通过避免重复来改进我们的程序:
#includeint main(void) { int i = 0; while (i 在此,创建了int类型的变量i,并为其赋值了值3。然后创建一个 while 循环,持续执行 i 我们可以通过使用for循环来进一步改进我们的程序设计:
#includeint main(void) { for (int i = 0; i for 循环需要三个参数。
第一个参数:int i = 0 初始化我们的计数器。
第二个参数:i 最后, i 参数告诉我们,每次 i 增加 1。
我们还可以创建自己的函数:
void meow(void) { printf("meow\n"); }void - 表示该函数不返回任何值。括号中 (void) - 表示该函数不接受任何参数。 我们在主函数中使用这个创建的喵函数:
#include
无效喵(无效); int 主函数(无效) { for (int i = 0; i #include void meow(void); int main(void) { for (int i = 0; i 函数原型在代码顶部给出为 void meow(void) ,以便我们可以在主函数中调用 meow 函数。 算术运算符和抽象
让我们用 C 语言制作一个计算器:
#include
#include int 主函数(无效) { // 输入x的值 int x = get_int("x: "); // 输入 y 的值 int y = get_int("y:"); // 执行添加操作 printf("%i\n", x y); } #includevoid meow(void); int main(void) { for (int i = 0; i get_int函数要求用户输入整型变量x和y的值。然后 printf 函数使用整数的格式代码 - %i 符号打印 x y 的值。
算术运算符是编译器支持的数学运算。 C 中的算术运算符包括:
- 加上;
抽象- - - 相减;
- * - 相乘;
- / - 用于除法;
- % - 计算一个数字除以另一个数字时的余数。
是通过将问题分解为更小的部分来简化代码的艺术。 我们可以将上面的代码抽象如下:
#include#include int add(int a, int b); int 主函数(无效) { // 输入x的值 int x = get_int("x: "); // 输入 y 的值 int y = get_int("y:"); // 执行添加操作 printf("%i\n", 添加(x, y)); } int add(int a, int b) { 返回 a b; } #include#include int add(int a, int b); int main(void) { // x qiymati kiritilsin int x = get_int("x: "); // y qiymati kiritilsin int y = get_int("y: "); // Qo'shish amalini bajarish printf("%i\n", add(x, y)); } int add(int a, int b) { return a b; } 评论
注释是计算机程序的基本部分,是我们向其他程序员以及我们自己做出的清晰简洁的注释,解释我们编写的代码在做什么。我们只用两个 // 标签来写评论:
#include#include int 主函数(无效) { // 输入一个正整数 整数n; 做 { n = get_int("请输入一个正整数:"); } 而(n #include#include int main(void) { // Musbat butun son kiritilsin int n; do { n = get_int("Musbat butun son kiriting: "); } while (n 数据类型 指定可以存储在变量中的数据类型。例如,变量可以存储数字、字符或布尔值。变量的类型告诉计算机如何处理该数据。 C中常见的数据类型有:
bool:可以保存布尔值,例如
true
整数溢出- (true)或false(false)。 char:只能存储一个字符。
- float:带小数的实数。
- int:不带小数点的整数。
- long:可以存储比int更大的整数,因为它使用更多的位。
- string:可以存储字符序列(例如单词)。
- 每个物种都有其自身的局限性。例如,由于内存限制,int 的最大值可以是 4294967295。如果我们尝试对超过其最大值的 int 进行计数,这将导致变量存储无效值(
)。 内存使用不当可能会导致我们的代码出现错误或问题。为了避免出现问题,我们需要确保使用正确的数据类型。
本文使用CS50x 2024源码。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3