指针数据类型 , const 在 * 左侧是 常量指针 ( 内存不能修改 ) , const 在 * 右侧是 指针常量 ( 指针不能被修改 ) ; 指针常量与常量指针 :需要查看 const 修饰的是 指针变量 , 还是 修饰 指针变量 指向的内存空间 ; const 在*右边 ( 指针常量 | const 修饰的是变量 ) :const 修饰的是 指针变量 ,...
在学习黑马教学const修饰指针的时候,碰到一个问题如下 在.cpp文件下编译时出现报错,.c文件下不报错 。这种能骗过编译器的写法不提倡。在严格的编译器上都是UB(undefined behavior )行为无法通过编译。 1. .cpp文件: 问题分析:类型不对 要改成int*p=(int*)&a,而且用指针去访问一个不对的东西,访问就是读写,...
- 在函数声明或定义中,可以使用const关键字来修饰函数参数,表示该参数在函数内部不会被修改。- 通过使用const修饰函数参数,可以增加代码的可读性和清晰度,同时也能够确保函数不会无意间修改传入的参数值。- 声明带有const修饰的函数参数的语法为:数据类型 const *参数名(表示指针指向的值不可修改)或者 const ...
(1) const修饰指针所指向的对象 复制 constint*ptr_to_const; 1. 这里,ptr_to_const是一个指向const int的指针,意味着通过该指针无法修改其所指向的值。 复制 int value=10;constint*ptr_to_const=&value;// *ptr_to_const = 20; // 错误:不能修改ptr_to_const所指向的值 ...
在C语言中,单独定义 const 变量没有明显的优势,完全可以使用#define命令代替。const 通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。 在C语言标准库中,有很多函数的形参都被 const 限制了,下面是部分函数的原型: ...
int const * const p = &n中,*前面的const使n变成了常变量,使指针也被修饰,导致了这两处报错。 结论 • const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。但是指针变量本⾝的内容可变。 • const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容(指针指...
例如,不要把函数int GetInt(void) 写成const int GetInt(void)。同理不要把函数A GetA(void) 写成const A GetA(void),其中A 为用户自定义的数据类型。 (2)如果函数返回值采用“指针传递”方式,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。
在类的定义中,可以使用const来声明一个成员函数,以确保该函数不会修改对象的内部状态。这对于实现不可变对象非常有用。 classMyClass{public:voidPrintData()const{// 不能修改对象的成员变量}};``` 3. 修饰常指针 const还可以用于声明常指针,即指针本身是不可变的,但可以修改指向的对象的值。
1.1.1空指针 空指针:没有指向任何一个对象的指针 1.1.2函数传参 在C中,函数传参都是值传递,传的都是参数的副本 当试图向函数传递数组时,其实传递的是指向数组初始数据的指针 2、内存 2.1虚拟地址 如今的操作系统会给应用程序的每一个进程分配独立的“虚拟地址空间”。