const 指针出现的值不一致
int *y = (int *)&x;
*y = 3;
cout << y << ":" << *y << " " << &x << ":" << *(&x) << endl;
程序运行后的结构是
y和x的地址一样,然而他们值确实不一样的啊
相关推荐
详解C/C++中const限定符总结
const限定符 const是一种限定符,被const所限定的变量其值不可以被改变。 const的初始化 由于const一旦创建其值就不能够被改变,所以我们必须对其进行初始化 const int a;//错误,const变量必须进行初始化! const int b=10;//正确,编译时初始化 const int c=get_size();//正确,运行时初始化 相同类型的变量相互初始化时,不论变量是否被const限定我们都可以进行随意的相互拷贝。因为在拷贝过程中我们只会用到等式右边变量的右值属性,无须在意其是否可以改变。 int m = 5; const int n = m; int j
const用法详解[源码]
本文详细解析了const T、const T*、T *const、const T&、const T*&等const用法的区别及其在编程中的应用。文章首先介绍了const T定义常量的基本用法,随后深入探讨了指向常量的指针、常量指针、常量引用等复杂用法,并通过代码示例展示了它们在函数和类中的实际应用。此外,文章还对比了不同用法之间的区别,如const int*与int* const的区别,以及如何避免常见的编程错误。最后,文章总结了在函数和类中使用const的最佳实践,帮助读者更好地理解和运用const关键字。
C++ 关于const
编程环境:win10,vs2017 定义常量 //const int b; //常量没有初始化 编译器报错: 错误(活动) E0257 常量 变量 “b” 需要初始值设定项 const int b = 1; //定义常量b,初始化为1 常量的值是不能被修改的,以下试图修改常量的值的代码,编译器会报错。 直接修改常量的值 const int b = 1; //b = 3; //错误 C3892 “b” : 不能给常量赋值 通过引用修改常量的值 const int b = 1; //int& rb
C语言const关键字详解[代码]
本文详细介绍了C语言中的const关键字,用于声明只读变量。const修饰的数据类型是常类型,其值不能被更新。文章从const的功能、存储位置(全局变量存储在常量区,局部变量存储在栈区)入手,并通过代码示例验证了不同变量的存储位置。此外,还详细讲解了const的用法,包括修饰变量、指针和函数参数及返回值。对于指针,区分了常量指针、指针常量和指向常量的常指针的不同特性。最后,文章还提到了const在函数参数和返回值中的应用,以及如何避免不必要的修改。
C/C++常量指针与指针常量解析[源码]
本文详细解析了C/C++中的常量指针和指针常量的概念及其区别。常量指针是指指针可以改变指向,但不能通过指针修改所指向的数据;而指针常量是指指针的指向不能改变,但可以通过指针修改所指向的数据(前提是数据不是常量)。文章还介绍了如何声明和使用这两种指针,以及它们的适用场景。此外,还讨论了常量指针指向常量数据的情况,即指针本身和所指向的数据都不能被修改,这对于保护数据不被意外修改非常有用。通过具体的代码示例,文章清晰地展示了这些概念的实际应用和注意事项。


