1).关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)2). 通过给优化器一些附加的信息,使用关键...
在C语言中,const可以用来定义的一个常量,在变量名前加上const即可。 int const a; 定义了一个a的整数常量,且a的值不能被修改。如果要修改a的值,有以下两种方法。 方法一 int const a=100; 在定义时,就对它进行初始化 方法二 在函数中声明const的形参在函数调用时会得到实参的值。 重点:const涉及指针变量...
void func(const int i) { i = 10; // 如果在函数体内修改了 i,编译器就会报错。 } 作用域 在C 语言中,作用域指的是一个常量、变量或函数在程序中可以被访问的范围,用于控制常量、变量或函数的可见性,避免命名冲突,并且可以提高程序的安全性和可维护性。 主要有以下 2 大类作用域: 「局部作用域」: ...
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。 全局变量的生命周期 由于我们全局变量的作用域是整个工程 而程序是从进入main( )函数开始,出main( )函数结束。那么是不是可以说: 全局变量的生命周期是:整个程序的生命周期。 二、常量 C语言中的常量分为以下以下几种: 字面常量 const修饰的...
const变量的文件作用域 以前从来没有注意到的一个知识点: const 修饰的对象默认只有当前文件中有效。这就表明了: 在不同的.cpp文件内可以定义相同名称的const 对象。 如果要使const 我修饰的变量具有全局使用域,在定义该变量时,需要加上extern 关键字。 原因: 在未声明
(1)const的作用域:const只在声明时存在,而不像#define那样会一直存在到程序结束,并且一个定义的实体,和在其他地方使用#define定义常量不同,它只在声明和定义的一段语句有效,到了这段代码结束就失效。 (2)使用const可以避免定义无用的变量。 (3)const有利于代码的可维护性,使得代码更容易维护和调试,也有助于降...
const int x = 520;即使const变量x定义在文件最尾部,也依然对整个文件可见。特别需要指出的是,#define定义在文件中,只能对当前文件可见,但是const定义在文件中,则对整个项目(或编译单元)可见,也就是其他源文件中仍然能访问这个const变量,这就会造成作用域污染,如果只想对当前文件可见,则仍然需要结合static一...
5. 作用域:const 变量的作用域和普通变量一样,可以是全局的也可以是局部的。在不同的作用域中可以使用相同的 const 变量名,它们不会相互干扰。 6. 常量指针:const 还可以用于声明指向常量的指针。这意味着指针指向的值是不可修改的,但指针本身可以修改。例如:const int *ptr; 声明了一个指向常量的指针,即不...
void func(const int *const p); 这种情况下,在函数体中将不能改变p的值,亦不能改变*p的值。 Part 3 修饰全局变量 全局变量的作用域是整个文件,一般情况下要少用全局变量,若工程中的某一个函数改变了全局变量的值,它也会影响到工程中其他引用这个变量的函数,这导致不易排查bug。若必须使用全局变量,就需要考...
与局部变量不同,全局变量贯穿整个程序,它的作用域为源文件,可被源文件中的任何一个函数使用。它们在整个程序执行期间保持有效。示例代码:#include<stdio.h>inta,b;//全局变量voidfunction(){}floatx,y;voidfunction2(){}intmain(intargc,constchar*argv[]){return0;}得出结论:从上例可以看出a、b、x、y都是...