`
iloveoracle
  • 浏览: 119357 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

c语言中去除const修饰

阅读更多

    [size=16px;]<span style="color: #000000;">a.能否将一个非常量对象的地址赋给一个常量指针?[/size]</span>

[size=16px;]<span style="color: #000000;">b.能否将一个常量对象的地址赋给一个非常量指针?若确要如此,该如何做?[/size]</span>

[size=16px; color: #000000;]可以将非常量对象地址赋值给常量指针,但是不能将常量对象地址给非常量指针,因为其无法保证不修改常量对象。[/size]

[size=16px; color: #000000;]若却要如此,则只能强制转换,能编译通过,但却可能存在隐患。因此编译器的工作就是将一切可能的隐患扼杀在摇篮中。[/size]

[size=16px; color: #000000;]</span>

[size=16px; color: #000000;]void main()[/size]

[size=16px; color: #000000;]{[/size]

[size=16px;]<span style="color: #000000;">const int i=5;[/size][/size]

[size=16px;]<span style="color: #000000;">int *j=[/size]const_cast<int *><span style="color: #000000;">(&amp;i);</span></span>

[size=16px; color: #000000;]}[/size]

 
0
0
分享到:
评论

相关推荐

    c 语言面试题10题

    ### C语言中的Const修饰符详解 #### 一、Const修饰符的基本概念 在C语言中,`const`关键字用于声明一个常量或者指定一个变量的一部分为只读。它可以帮助我们更好地控制程序的行为,并且增强代码的安全性和可维护性...

    23届秋招-C语言基础

    - 常量段:存放const修饰的全局变量和常量字符串。 - 代码段:存放函数的机器代码。 8. **编译运行过程**: - 预处理:处理预处理指令,引入头文件,去除注释,宏替换等。 - 编译:语法分析、词法分析、语义...

    C语言常见问题

    17. const修饰符的使用:常用于声明常量和防止误修改数据。 18. 浮点数比较的可靠性:浮点数比较可能存在精度误差,一般不推荐用于精确比较,可使用误差范围进行比较。 19. 数字型变量的最大值:使用相应的类型...

    C语言笔记1

    而`int const *p`则意味着`p`可以指向不同的地址,同样`p`指向的内容不可变,这里的区别在于后者强调了`const`修饰的是`int`。 #### Volatile限定符 - **非优化**: `volatile`告诉编译器,该变量可能会被未知的代码...

    常见C语言错误提示信息

    **解决方法**: 修改类型定义,去除冲突的修饰符。 #### Constant expression required (需要常量表达式) **描述**: 某个地方需要常量表达式,但提供的却不是。 **解决方法**: 使用常量或宏定义替换非常量表达式。...

    C语言重点难点总结.doc

    Const限定修饰符可以在模块单独编译阶段对“只读性”数据进行安全性检验。 第八章:字符串 字符串是典型的非数值对象,是有效字符序列,结尾加标识符’\0’。字符串的长度是指字符串中有效字符的个数,不包括’\0’...

    四种强制类型转换分析文档1

    它允许你去除const或volatile修饰,以便修改原本被视为常量的对象。例如,当你在类的常量成员函数中需要修改非静态成员时,可以通过const_cast去掉this指针的const属性。同样,const_cast也可以将常量指针或引用转换...

    第8章 指针-5向函数传递字符串1

    // 使用const修饰指针参数 unsigned int MyStrlen(const char *pStr) { // ... } ``` 进一步优化代码,可以减少循环中的检查次数,比如去掉显式的空字符比较: ```c // 优化后的实现 unsigned int MyStrlen(const...

    C指针详解(经典,非常详细).pdf

    - 使用const修饰符:防止指针指向的数据被意外修改。 - 检查返回的指针:函数可能返回NULL或者无效指针,需要进行检查。 - 注意指针释放:动态分配的内存要使用完毕后及时释放,防止内存泄漏。 综上所述,指针是...

    面试题-c++面试题四

    - `const_cast`:主要用于去除或添加`const`和`volatile`修饰。 - `reinterpret_cast`:用于任意类型间的转换,如整数转指针,但可能导致不可预测的结果,应谨慎使用。 - `C`风格的强制转换不推荐,因为它缺乏...

    精简版sprintf

    `sprintf`函数是C语言标准库中的一个格式化输出函数,它允许我们将格式化的数据写入到字符串中,而不是像`printf`那样直接输出到标准输出。在嵌入式系统中,由于资源有限,有时需要使用更轻量级的版本,这就是"精简...

    C++题目汇总终稿 701

    const修饰变量表示其值不可修改,修饰函数参数表示参数在函数内部不可修改,修饰函数表示函数不会修改对象的状态。 18. **指针与引用的区别**: 指针可以为空,可以改变指向;引用一旦初始化后不能改变,必须始终...

    c_notes.docx

    8. **常量**:使用`const`修饰符定义常量,例如`const int AMOUNT=100`,定义了一个不可改变的整数常量。 9. **类型转换**:在整数和浮点数混合运算时,整数会自动转换为浮点数。`%f`用于输出double或float类型的...

    Cpp面经200问.pdf

    对于指针而言,const可以修饰指针本身或指针指向的内容。 #### 53. 形参与实参区别 形参是指函数定义中声明的参数,实参是指函数调用时提供的实际参数值。 #### 54. 传递方式区别和效率 值传递会复制一份数据,...

    新手学习C++入门资料

    在C语言中,输入输出是使用语句scanf()和printf()来实现的,而C++中是使用类来实现的。 #include iostream.h main() //C++中main()函数默认为int型,而C语言中默认为void型。 { int a; cout; cin&gt;&gt;a; /*输入...

    object-c基础入门

    - **NSLog函数**:用于打印输出信息,类似于C语言中的`printf()`函数。`NSLog(@"hello Objective-C");`中的`@`符号是Objective-C特有的语法,用于标识字符串或其它类型的对象。 - **格式化字符串**:`NSLog(@"are%d...

    全国计算机二级C++考试复习知识点汇总.doc

    - `const_cast`:去除常量性。 - `public`:访问修饰符。 - `this`:指向当前对象的指针。 - `wchar_t`:宽字符类型。 - `friend`:友元函数或类。 - `true`:布尔类型的真。 - `reinterpret_cast`:解释性...

    C++随手笔记C++随手笔记

    - 使用`const_cast&lt;&gt;`去除或添加`const`限定符。 - 使用`static_cast&lt;&gt;`进行安全的类型转换。 - 使用`dynamic_cast&lt;&gt;`进行安全的向下转型。 #### 30. 类的成员函数 - 成员函数可以是普通的成员函数,也可以是静态...

Global site tag (gtag.js) - Google Analytics