C语言初步学习

第一个 C 语言程序

让我们从一个简单的 C 语言程序开始,这个程序会在屏幕上输出 “Hello, World!”。以下是代码:

#include <stdio.h>

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

在这个程序中,#include <stdio.h> 是一个预处理指令,它告诉编译器包含标准输入输出库。标准输入输出库提供了许多有用的函数,像 printf()scanf() 等。main() 函数是程序的入口点,所有的 C 程序都从 main() 函数开始执行。当程序运行时,操作系统会调用 main() 函数。printf() 函数用于在屏幕上输出文本。这里的 \n 是一个转义字符,表示换行。return 0; 语句表示程序正常结束,返回值 0 通常意味着程序执行成功。

变量和数据类型

在 C 语言中,变量用于存储数据。在使用变量之前,需要先声明它的数据类型。数据类型决定了变量可以存储的数据范围和占用的内存空间。以下是一些常见的数据类型:

  • int:用于存储整数,例如 int age = 25;。整数类型在不同的系统中占用的字节数可能不同,但通常是 4 个字节,可以表示的范围大约是 -2147483648 到 2147483647。
  • float:用于存储单精度浮点数,例如 float price = 9.99;。单精度浮点数可以表示小数,占用 4 个字节,能提供大约 7 位的有效数字。
  • double:用于存储双精度浮点数,例如 double pi = 3.14159;。双精度浮点数占用 8 个字节,能提供大约 15 位的有效数字,精度比 float 更高。
  • char:用于存储单个字符,例如 char grade = 'A';。字符类型占用 1 个字节,可以存储 ASCII 字符集中的任意字符。

下面是一个使用变量的示例:

#include <stdio.h>

int main() {
    int num1 = 10;
    int num2 = 20;
    int sum = num1 + num2;

    printf("The sum of %d and %d is %d\n", num1, num2, sum);
    return 0;
}

在这个示例中,我们声明了三个整数变量 num1num2sum,并对它们进行了赋值和计算。首先,num1 被赋值为 10,num2 被赋值为 20。然后,将 num1num2 相加的结果赋值给 sum。最后,使用 printf() 函数输出结果。%d 是格式说明符,用于表示输出的是整数。

运算符

C 语言支持多种运算符,包括算术运算符、关系运算符、逻辑运算符等。这些运算符可以帮助我们进行各种计算和条件判断。以下是一些常见运算符的示例:

算术运算符

#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;

    int addition = a + b;
    int subtraction = a - b;
    int multiplication = a * b;
    int division = a / b;
    int modulus = a % b;

    printf("Addition: %d\n", addition);
    printf("Subtraction: %d\n", subtraction);
    printf("Multiplication: %d\n", multiplication);
    printf("Division: %d\n", division);
    printf("Modulus: %d\n", modulus);

    return 0;
}

在这个示例中,我们使用了加法、减法、乘法、除法和取模运算符。加法运算符 + 用于将两个数相加,减法运算符 - 用于将两个数相减,乘法运算符 * 用于将两个数相乘。需要注意的是,整数除法会截断小数部分,例如 10 除以 3 的结果是 3,而不是 3.333…。取模运算符 % 用于计算两个数相除的余数,例如 10 对 3 取模的结果是 1。

关系运算符

#include <stdio.h>

int main() {
    int x = 5;
    int y = 10;

    int greater_than = x > y;
    int less_than = x < y;
    int equal_to = x == y;
    int not_equal_to = x != y;

    printf("x > y: %d\n", greater_than);
    printf("x < y: %d\n", less_than);
    printf("x == y: %d\n", equal_to);
    printf("x != y: %d\n", not_equal_to);

    return 0;
}

关系运算符用于比较两个值的大小关系,返回的结果是 0(假)或 1(真)。大于运算符 > 用于判断左边的值是否大于右边的值,小于运算符 < 用于判断左边的值是否小于右边的值,等于运算符 == 用于判断两个值是否相等,不等于运算符 != 用于判断两个值是否不相等。在这个示例中,x > y 的结果是 0,因为 5 不大于 10;x < y 的结果是 1,因为 5 小于 10;x == y 的结果是 0,因为 5 不等于 10;x != y 的结果是 1,因为 5 不等于 10。

逻辑运算符

#include <stdio.h>

int main() {
    int a = 1;
    int b = 0;

    int logical_and = a && b;
    int logical_or = a || b;
    int logical_not_a = !a;
    int logical_not_b = !b;

    printf("a && b: %d\n", logical_and);
    printf("a || b: %d\n", logical_or);
    printf("!a: %d\n", logical_not_a);
    printf("!b: %d\n", logical_not_b);

    return 0;
}

逻辑运算符用于组合或取反布尔值。逻辑与运算符 && 只有当两个操作数都为真时,结果才为真;逻辑或运算符 || 只要有一个操作数为真,结果就为真;逻辑非运算符 ! 用于取反操作数的值。在这个示例中,a && b 的结果是 0,因为 a 为真,b 为假;a || b 的结果是 1,因为 a 为真;!a 的结果是 0,因为 a 为真,取反后为假;!b 的结果是 1,因为 b 为假,取反后为真。

控制语句

控制语句用于控制程序的执行流程。常见的控制语句有 if-else 语句、for 循环、while 循环等。这些控制语句可以让程序根据不同的条件执行不同的代码块,或者重复执行某些代码块。

if-else 语句

#include <stdio.h>

int main() {
    int age = 18;

    if (age >= 18) {
        printf("You are an adult.\n");
    } else {
        printf("You are a minor.\n");
    }

    return 0;
}

在这个示例中,如果 age 大于等于 18,则输出 “You are an adult.”,否则输出 “You are a minor.”。if 语句后面的条件表达式 age >= 18 会被计算,如果结果为真,则执行 if 后面的代码块;如果结果为假,则执行 else 后面的代码块。

for 循环

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("The value of i is %d\n", i);
    }

    return 0;
}

这个 for 循环会从 0 开始,每次循环 i 的值加 1,直到 i 等于 5 时停止循环。for 循环的语法结构是 for (初始化; 条件; 迭代)。初始化部分 int i = 0 用于初始化循环变量;条件部分 i < 5 用于判断是否继续循环;迭代部分 i++ 用于更新循环变量的值。

while 循环

#include <stdio.h>

int main() {
    int j = 0;
    while (j < 5) {
        printf("The value of j is %d\n", j);
        j++;
    }

    return 0;
}

这个 while 循环会在 j 小于 5 时一直执行,每次循环结束后 j 的值加 1。while 循环的语法结构是 while (条件),只要条件表达式的值为真,就会一直执行循环体中的代码。

do-while 循环

#include <stdio.h>

int main() {
    int k = 0;
    do {
        printf("The value of k is %d\n", k);
        k++;
    } while (k < 5);

    return 0;
}

do-while 循环与 while 循环类似,但它会先执行一次循环体,然后再判断条件。如果条件为真,则继续循环;如果条件为假,则停止循环。在这个示例中,无论 k 的初始值是多少,循环体都会至少执行一次。

函数

函数是一段完成特定任务的代码块。在 C 语言中,函数可以分为库函数和用户自定义函数。库函数是由 C 语言标准库提供的,我们可以直接使用;用户自定义函数是我们自己编写的,用于实现特定的功能。以下是一个自定义函数的示例:

#include <stdio.h>

// 函数声明
int add(int a, int b);

int main() {
    int num1 = 5;
    int num2 = 3;
    int result = add(num1, num2);

    printf("The result of addition is %d\n", result);
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

在这个示例中,我们定义了一个名为 add 的函数,它接受两个整数参数并返回它们的和。函数声明 int add(int a, int b); 告诉编译器有一个名为 add 的函数,它接受两个整数参数并返回一个整数。函数定义 int add(int a, int b) { return a + b; } 实现了函数的具体功能。在 main() 函数中调用了这个函数,并将结果输出。

数组

数组是一组相同类型的元素的集合。数组可以存储多个数据,并且可以通过索引来访问每个元素。以下是一个一维数组的示例:

#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};

    for (int i = 0; i < 5; i++) {
        printf("The value at index %d is %d\n", i, numbers[i]);
    }

    return 0;
}

在这个示例中,我们声明了一个包含 5 个整数的数组 numbers,并使用 for 循环遍历数组并输出每个元素的值。数组的索引从 0 开始,所以 numbers[0] 表示数组的第一个元素,numbers[1] 表示数组的第二个元素,以此类推。

多维数组

#include <stdio.h>

int main() {
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]);
        }
    }

    return 0;
}

多维数组是数组的数组。这里我们定义了一个二维数组 matrix,它可以看作是一个 2 行 3 列的矩阵。通过嵌套的 for 循环,我们可以遍历二维数组的每个元素。

指针

指针是 C 语言中一个非常重要的概念。指针是一个变量,它存储的是另一个变量的内存地址。通过指针,我们可以直接访问和修改内存中的数据。以下是一个指针的示例:

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = #

    printf("The value of num is %d\n", num);
    printf("The address of num is %p\n", &num);
    printf("The value of ptr is %p\n", ptr);
    printf("The value pointed to by ptr is %d\n", *ptr);

    *ptr = 20;
    printf("The new value of num is %d\n", num);

    return 0;
}

在这个示例中,我们定义了一个整数变量 num,并使用取地址运算符 & 获取它的地址。然后,我们定义了一个指针变量 ptr,并将 num 的地址赋值给它。通过解引用运算符 *,我们可以访问指针所指向的变量的值。我们还可以通过指针来修改所指向的变量的值,如 *ptr = 20; 这行代码将 num 的值修改为 20。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇