C语言入门之变量、常量、字符串、转义字符


文章目录

  • 变量
  • 常量
  • 字符串
  • 转义字符

    一、变量

    1.变量的命名规则:

    只能由字母(包括大写和小写)、数字和下划线( _ )组成。

    不能以数字开头。

    长度不能超过63个字符。

    变量名中区分大小写的。

    变量名不能使用关键字。

    2.变量的分类:

            变量可以分为局部变量以及全局变量

    代码如下:

    #include int global = 2019;//全局变量
    int main()
    {
    	int local = 2018;//局部变量
    	int global = 2020;//局部变量
    	printf("global = %d\n", global);
    	return 0;
    }

             在这一段代码中我们可以看到,创建的全局变量与局部变量同名,那么打印出来global的值是2019还是2020呢?运行结果如下:

            我们可以看到,运行结果global=2020。也就意味着:当局部变量和全局变量同名的时候,局部变量优先使用。

    3.变量的作用域和生命周期

    作用域:

    作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的。而限定这个名字的可用性的代码范围就是这个名字的作用域。

    局部变量的作用域:

            上面这个例子就很好的证明了局部变量a的作用域仅仅只局限于花括号这个局部范围内,出了这个区域就不可以访问了。

            全局变量的作用域:整个工程。

            也就意味着:当全局函数创建完成后,在程序中的任何一个地方都可以访问全局变量。

    生命周期:

    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

     1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

     2. 全局变量的生命周期是:整个程序的生命周期。

    二、常量

    常量一般分为以下几种:

    1.字面常量

    2.const 修饰的常变量

    3.#define 定义的标识符常量

    4.枚举常量

    代码如下:

            注1:上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

            注2:枚举常量的默认值是可以更改的,也就是说在定义枚举常量的时候可以给其赋初始值。

    三、字符串

    "Hello World.\n"


             这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

    关于\0还需要强调以下的问题,见如下代码:

             注:字符串的末尾会自动添加\0,而逐个字符输入数组的情形,则需要在数组的最末位添加\0,否则数组会一直往后走直到找到\0为止,而导致像数组arr2这样打印出一些未知内存存放的内容。

    四、转义字符

    转义字符——转变原来的意思

    转义字符释义
    \?在书写连续多个问号时使用,防止他们被解析成三字母词
    \'用于表示字符常量'
    \“用于表示一个字符串内部的双引号
    \\用于表示一个反斜杠,防止它被解释为一个转义序列符
    \a警告字符,蜂鸣
    \b退格符
    \f进纸符
    \n换行
    \r回车
    \t水平制表符
    \v垂直制表符
    \dddddd表示1到3个八进制数字。如: \130 表示字符X
    \xdddd表示两个十六进制数字。如: \x30 表示字符0

            \? : ' ??) '在早些时候被叫做三字母词,在有些编译器下会打印成 ' ] ',在?前加上\可以防止这种情况发生,让?不被解析为三字母词中的问号

            \' :当三个'连用时,第二个'会和第一个'构成一对单引号,若想打印出第二个',就要在第二个'前加上\,\"也是同样的用法。

            \\ :在第二个\前再加上一个\,可以防止第二个\被当成其他转义字符的一部分,可以正常打印出\t,\n等内容,此用法最常用于打印网址等内容。

            \b : 例如在打印字符串时,\b可以让\b之后的内容都向前退一格,而使\b前面的一个字符被覆盖掉。

    \t / \v : 让内容空出指定的空格数\行数。