URL地址中的中文乱码问题的解决_静静的微微一笑的博客-程序员宝宝
变量分为局部变量和全局变量,其作用域和生命周期也有所不同。
局部变量的作用域:就是变量所在的局部范围。
全局变量的作用域:整个工程。
其中对于整个工程
1. 变量的作用域及其生命周期 变量分为局部变量和全局变量,其作用域和生命周期也有所不同。 局部变量的作用域:就是变量所在的局部范围。 全局变量的作用域:整个工程。 其中对于整个工程的理解是,在不同的.c文件中,一个.c文件中的全局变量可以在另一个.c文件中使用(目前学到的使用方法是打印)。但是需要声明。 声明的方法:使用声明函数, extern 变量的生命周期:变量的创建和销毁之间的时间段 局部变量的生命周期:入局部范围开始而出局部范围结束 全局变量的生命周期:程序的生命周期 2. 常量的类型 字面常量 const修饰的常变量,某一个变量,在用 const 修饰以后,它就是不可变的了,具有了常量的属性,但是它仍然是一个变量,不能在某些只能是常量应用的领域应用。 某些不可应用的场景如下图 define定义的标识符常量,同样是定义过就不可改变的。 枚举常量(比较新的一个概念) 定义枚举常量的函数, enum ,如下图 同样的,枚举常量也有其相对应的值,遵循0 1 2 3 4 ............ 这样的规律,但是也可以进行赋初值的操作来将某个值“塞”到枚举常量里。 3. 字符串 字符串就是一串用双引号括起来的字符,其中有一个叫做 字符数组的概念,他可以储存字符串,当然也可以储存字符。 字符数组是一组相同类型的元素,可以类比为数学中的“集合”。 其中一个比较重要的概念是,字符串在结尾的位置 隐藏了一个\0的字符,\0是字符串的结束标志,但是不算做字符串的内容应用程序日志,也就是在计算中不算作长度。 为了证明字符串在结尾位置隐藏了一个\0的字符,可以进行如下操作。 a. 监视的操作 由图可以看出,在调试监视下,arr1中有 \0这么一个东西 b. 打印的操作 直接打印出arr1 和arr2,发现出现明显不同,并且在arr2中,也就是那个假设认为没有\0,出现了乱码。 根据对比实验的原则,在arr2中加入\0以后,发现乱码消失,和arr1打印出的结果相同。 c. 计算长度的操作 首先介绍计算长度的函数及其头文件, 头文件: #include 库函数: strlen 在说明这一步的操作之前,要补充的一个知识是,\0没有的后果是什么? 电脑中的数据是这样的,实际上在abc的后面是未知的数据,如果没有\0终止,那么就会持续后面未知的数据,直到出现\0停止,可以和终止子想类比,想一想基因突变中导致终止子的位置提前或后退或消失。 这也就解释了为什么在b操作中,打印出乱码的结果。 在计算arr1和arr2的操作中,可以看到arr1的长度为3,而arr2的长度为15,但是实际上,arr2的长度是一个随机值,只是说在这次,在第十六位出现了\0,终止了对后面数据的读取,如果\0直到100才出现,那么计算出的长度就是99. (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |