4.在函数参数中使用const:当你在函数参数中使用const时,你向调用者保证这个函数不会修改传入的参数。这有助于增强代码的可读性和可维护性。void print_array(const int *arr, int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");} 在这个例子中,print_array...
首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量,我们给它赋予初始值0。然后再看const. const作为一个类型限定词,和int有相同的地位。 const int a; int const a; 是等价的。于是此处我们一定要清晰的明白,const修饰的对象是谁,是a,和int没有关系。const 要求他所修饰的对象为常量,不...
1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应) 2. const 修饰类的数据成员。如: class A { const int size; … } const数据成员只...
(str)= ___; //str表示数组,得到结果是数组占用内存的总空间,注意数组最后有一个元素保存字符串结束符,6 sizeof(p)= ___; //指针变量,4 sizeof(n)= ___; //int形变量,4 sizeof(q)= ___; //指向100字节的堆内存,4 //如果数组变量被传入函数中做sizeof运算,则和指针的运算没有区别;否则会...
const int a = 10;//a不能被修改了,但是a的本质还是变量 a = 20;//const仅仅是语法上做出了限制,习惯上叫常变量修改-err printf("a = %d\n", a);return 0;} const修饰指针的时候 1.const可以放在*的左边 2.const可以放在*的右边 1.const放在*的左边 Plain Text 复制代码 99 1 2 3 4 5...
4、 const 修饰函数返回值 const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。 (1)const int fun1()这个其实无意义,因为参数返回本身就是赋值。 (2)const int * fun2()调用时 const int *pValue = fun2(); 我们可以把fun2()看作成一个变量,指针内容不可变。
classTest{public:Test():a(0){}enum{size1=100,size2=200};private:constinta;//只能在构造函数初始化列表中初始化staticintb;//在类的实现文件中定义并初始化conststaticintc;//与 static const int c;相同。};intTest::b=0;//static成员变量不能在构造函数初始化列表中初始化,因为它不属于某个对象。
typedef int (*PTR_TO_ARR)[4]; 表示PTR_TO_ARR 是类型int * [4]的别名,它是一个二维数组指针类型。接着可以使用 PTR_TO_ARR 定义二维数组指针: PTR_TO_ARR p1, p2; 按照类似的写法,还可以为函数指针类型定义别名: typedef int (*PTR_TO_FUNC)(int, int); ...
cout 和 cin。 而你再定义 size 也不会有问题(库中的 size 还在 std 中,不会和这个冲突)。
const int size = 128; const int* size_ptr = & size; //定义一个指向常量对象的指针 *size_ptr = 256; //错误,不允许修改 看到这边你可能会思考一个问题,指向常量的指针是否可以指向一个非常量的对象呢? 答案:可以。这是个特例情况,允许令一个指向常量的指针指向一个非常量对象。所谓指向常量的指针仅...