2、函数传参中使用const指针: (1)const一般用在函数参数列表中,用法是const int *p;(意义是指针变量p本身可变的,而p所指向的变量是不可变的)。示例如下: 1 #include <stdio.h> 2 3 void func1(int *p) 4 { 5 *p = 5; 6 } 7 void func2(const int *p) 8 { 9 *p = 5; 10 } 11 int mai...
当const 在函数名前面的时候修饰的是函数返回值;在函数名后面表示是 C++ 常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。 const char * GetString(void); const int GetInt(void); const float GetFloat(void); const double GetDdouble(void); 如果给以“指针传递”方式的函数返...
非指针参数(也就是传值参数)不会被修改原始值, const 对它是没有意义的. const 只用于指针. 1. 第一种用法: const 类型 *变量: 这种用法将限制修改指针指向的值. #include<stdio.h>intfun(constint*p){*p+=1;/* 只有去掉 const 这句才可以执行 */return*p;}intmain(void){intnum=3;printf("%d\n...
非指针参数(也就是传值参数)不会被修改原始值, const 对它是没有意义的. const 只用于指针. 1. 第一种用法: const 类型 *变量: 这种用法将限制修改指针指向的值. #include <stdio.h>intfun(constint*p) { *p += 1;/* 只有去掉 const 这句才可以执行 */return*p; }intmain(void) {intnum = 3;...
首先提示的是:在常变量(const 类型说明符 变量名)、常引用(const 类型说明符 &引用名)、常对象(类名 const 对象名)、常数组(类型说明符const 数组名[大小]),const”与 “类型说明符”或“类名”(其实类名是一种自定义的类型说明符)的位置可以互换。如: ...
void foo(const int *p); 这种形式通常用于在数组形式的参数中模拟传值调用。也就是相当于函数调用者声称:"我给你一个指向它的指针,但你不能去修改它。"如果函数编写者遵循了这个约定,那么就相当于模拟了值传递。这也是const最有用之处了:用来限定函数的形参,这样该函数将不会修改实参指针所指的数...
当const 在函数名前面的时候修饰的是函数返回值;在函数名后面表示是 C++ 常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。 constchar*GetString(void);constintGetInt(void);constfloatGetFloat(void);constdoubleGetDdouble(void); ...
引用没有const,指针有const,const的指针不可变;(具体指没有int& const a这种形式,而const int& a是有 的, 前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变) 引用不能为空,指针可以为空; “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”...
const int * const r=&ss; 这个时候我们既不能修改*r的值也不能修改r的值。 接下来看看const用于修饰常量静态字符串,例如:例如: const char* str="fdsafdsa"; 如果没有const的修饰,我们可能会在后面有意无意的写str[4]='x'这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const...
输出型参数,是指某个参数可以将函数体内的数据传递给函数外部。参数如果是值类型,肯定是无法传出函数外部,因为它实际上在函数内部和函数外部是两个不同的地址空间,函数内部变量实际上是函数外部变量的副本。因此,函数的输出参数只能通过指针类型来实现,而且不能用const修饰参数所指向的数据,否则无法修改外部数据的...