转义字符与变量

前言
        大家好!我是一个刚刚踏入编程世界的初学者,今天我想分享我学习C语言的心路历程。在这个快速发展的科技时代,编程已经成为了越来越多人的必备技能,而C语言作为计算机科学的基础,扮演着至关重要的角色。

回想刚开始接触C语言时,那些复杂的语法和看似晦涩的概念让我感到望而生畏。然而,在不断地学习和实践中,我逐渐体会到编程的乐趣和魅力。从最简单的“Hello, World!”到实际的项目开发,每一步都充满挑战与收获。

希望在这个过程中,我能与大家一同成长,分享我的学习心得,同时也期待得到更多前辈的指导和建议。让我们一起探索C语言的无穷奥秘,共同踏上这条充满可能性的编程之旅!


目录

一、转义字符

1.1什么是转义字符?

二、变量

2.1 全局变量

2.2 局部变量

2.3. 注意事项


一、转义字符

        转义字符是计算机科学和编程中的一个重要概念,主要用于表示一些在字符串中无法直接表示的字符。例如,某些字符在特定的上下文中具有特殊的含义,使用转义字符可以让程序正确识别和处理这些字符。

1.1什么是转义字符?

在许多编程语言和数据格式中,转义字符通常是以反斜杠 (\) 开头,后面跟随特定的字符。当程序解析字符串时,转义字符告诉解析器不要将后面的字符视为它们的字面值,而是作为特殊符号来处理。例如,在 C 语言和 Python 中,常见的转义字符包括:

\0    空字符结束标注    0
\a    响铃    7
\b    退格(Backspace)    8
\t    水平制表符(即横向跳格tab,代表一个字符效果是4个字符)    9
\n    回车换行(Enter)    10
\v    竖向跳格    11
\f    换页    12
\r    回车    13
\"    双引号(")    34
\’    单引号(‘’)    39
\?    问号( ? )    63
\\    反斜线字符(\)    92
\ddd    1~3位八进制所代表的字符 
\xhh    1~2位十六进制所代表的字符 

#include <stdio.h>

int main() {
    // 显示不同的转义字符
    printf("空字符 (\\0): %c\n", '\0'); // 空字符通常不可见
    printf("响铃 (\\a): \a这是一个响铃:响铃!\n"); // 响铃字符
    printf("退格 (\\b): Hello\b World\n"); // 退格字符
    printf("水平制表符 (\\t): Hello\tWorld\n"); // 制表符
    printf("回车换行 (\\n): Hello\nWorld\n"); // 换行字符
    printf("竖向跳格 (\\v): Hello\vWorld\n"); // 竖向跳格字符
    printf("换页 (\\f): Hello\fWorld\n"); // 换页字符
    printf("回车 (\\r): Hello\rWorld\n"); // 回车字符
    printf("双引号 (\\\",使用反斜杠进行转义): Here is a quote: \"Hello, World!\"\n"); // 双引号
    printf("单引号 (\\’): It\'s a test!\n"); // 单引号
    printf("问号 (\\?): What is your favorite color?\n"); // 问号
    printf("反斜线 (\\\$: This is a backslash: \\\n"); // 反斜线

    // 使用八进制和十六进制表示特殊字符
    printf("八进制 (\\ddd): %c\n", 7); // 八进制 7 对应的字符(响铃)
    printf("十六进制 (\\xhh): %c\n", 0x42); // 十六进制 0x42 对应字符 'B'

    return 0;
}

        结果:

空字符 (\0):
响铃 (\a): 这是一个响铃:响铃!
退格 (\b): Hell World
水平制表符 (\t): Hello  World
回车换行 (\n): Hello
World
竖向跳格 (\v): Hello
World
换页 (\f): Hello
World
World(\r): Hello
双引号 (\",使用反斜杠进行转义): Here is a quote: "Hello, World!"
单引号 (\’): It's a test!
问号 (\?): What is your favorite color?
反斜线 (\$: This is a backslash: \
八进制 (\ddd):
十六进制 (\xhh): B
请按任意键继续. . .

二、变量

        在 C 语言中,变量是用于存储数据的命名空间,允许程序在执行时动态地使用和修改数据。变量在 C 语言中主要分为两类:全局变量和局部变量。它们的主要区别在于作用域和生命周期。

2.1 全局变量

定义
全局变量是在所有函数外部定义的变量。它们可以被程序中的任何函数访问,因此其作用域是整个文件(甚至是链接的多个文件,视变量的声明方式而定)。

特点

  • 作用域:从变量定义的地方开始,到文件结束为止。任何函数(在全局作用域内)都可以访问这个变量。
  • 生命周期:程序运行期间一直存在,即从程序开始执行到程序结束。
  • 存储位置:存储在数据段中。
    #include <stdio.h>
    
    int globalVar = 10; // 全局变量
    
    void functionA() {
        printf("In functionA, globalVar: %d\n", globalVar);
    }
    
    void functionB() {
        globalVar += 5; // 修改全局变量
        printf("In functionB, globalVar: %d\n", globalVar);
    }
    
    int main() {
        printf("In main, globalVar: %d\n", globalVar);
        functionA();
        functionB();
        printf("After functionB, globalVar: %d\n", globalVar);
        return 0;
    }

    2.2 局部变量

    定义
    局部变量是在函数内部定义的变量。它们只能在定义它们的函数内部访问,出函数的作用域后就无法访问。

    特点

  • 作用域:仅在定义它们的函数内部以及嵌套的函数中有效。
  • 生命周期:在函数执行时创建,当函数执行结束后销毁。每次函数调用都会创建新的局部变量实例。
  • 存储位置:通常存储在栈中。
    #include <stdio.h>
    
    void functionC() {
        int localVar = 20; // 局部变量
        printf("In functionC, localVar: %d\n", localVar);
    }
    
    int main() {
        functionC();
        // printf("%d", localVar); // 这行会报错,因为 localVar 超出了作用域
        return 0;
    }
    特性全局变量局部变量
    作用域整个程序(文件)只在定义它的函数内部
    生命周期从程序开始到结束只在函数调用期间存在
    存储位置数据段
    可见性所有函数可见仅在本函数可见

    2.3. 注意事项

  • 命名冲突:全局变量和局部变量可以同名,但局部变量会覆盖全局变量在同一作用域内的引用。当局部变量与全局变量同名时,程序使用的是局部变量。
  • 可维护性:过多使用全局变量可能导致代码难以维护和理解,因为它们可以在任何地方被修改,这可能会导致难以追踪的错误。通常建议尽量使用局部变量,只有在必要时才使用全局变量。
  • 初始化:全局变量会被自动初始化为零(整数、浮点数)或空指针,而局部变量不会自动初始化,因此在使用局部变量之前,最好手动进行初始化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值