1、const关键字
1 /* *************************************************
2 * 指向整型常量的指针,可以修改指针,但是不可修改指向的内容
3 * 赋值则要对指针赋值
4 * *************************************************/
5 int const *pci;
6 int i = 9;
7 pci = &i;
8 printf("--%d--\n",*pci);
2、作用域
代码块作用域:一对花括号之间,自动隐藏外层同名符号,在内层代码中无法通过名字直接访问。故要在嵌套代码中避免同名变量,非嵌套代码无此限制。
文件作用域:从其声明之处到源文件结尾都是有效的。函数名属于文件作用域,函数的形参则属于代码块作用域(即是函数的实现代码块内部有效)。#include则不限于此,其作用域包括所有包含的头文件的作用域
原型作用域:在函数原型声明的参数名字,尽在原型中有效。
函数作用域:goto语句标签。函数中标签必须唯一,语句标签也尽在一个函数内部有效。
3、一些警告的原因
编写不会产生任何结果的表达式
确信if语句的列表前后都有花括号
在switch语句中,执行以外从一个case到另一个case
4、提示编程
在没有循环体的循环结构中,用一个分号来表示空语句,并且独占一行
在每个switch结构中都要用default子句
5、自定义代码块区间,限定变量名的作用域
1 int const *pci;
2 int i = 100; // 外层i的声明
3 {
4 int i = 9; // 内层i的声明,隐藏了外部i=100
5 pci = &i;
6 }
7 printf("--%d--\n",*pci); // 输出 --9--
--The end