const和C指针】的更多相关文章

[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, const 对象的引用 作者:webabcd 介绍不可或缺 Windows Native 之 C++ this 指针 对象数组 对象和指针 const 对象 const 指针和指向 const 对象的指针 const 对象的引用 示例1.CppEmployee 类CppEmployee.h #pragma…
这里很容易搞混: tyepdef double dou;//这里是dou是double的别名 #include<iostream> using namespace std; int main() { typedef char *pstring; //pstring实际上是指向char的指针. const pstring cstr = 0; //cstr 是指向char 的常量指针 const pstring *ps; //ps是一个指针,他的对象是指向char的常量指针 const char…
const对象: const对象声明时必须赋初值,该值在编译阶段确定,不可在程序中修改. const修饰符既可放在类型名前也可放在类型名后,通常放在类型名前.不过放在类型名后易于理解. const int a = 7; int b = 8; int array[a];//合法, a是const变量,值在编译阶段确认 int arr[b];  //不合法,b是个普通变量,值没有在编译阶段确定 指向const对象的指针: 可理解为“自认为指向const对象的指针”,其实际所指向的对象不一定是cons…
今天在写C++代码的时候遇到一个错误,涉及到了常量的this指针的问题. 简化后的代码如下: #include <iostream> #include <string> using namespace std; class A { private: string str; string getStr(); public: void print() const; }; string A::getStr() { return str; } void A::print() const {…
/* int const *p; *p是常量, p是变量 const int *p; *p是常量, p是变量 int * const p; *p是变量, p是常量 const int * const p; *p是常量, p是常量 int const * const p; *p是常量, p是常量 */ #import <Foundation/Foundation.h> #import <objc/runtime.h> /** const的作用 1.const只修饰它右边的内容 2.被…
1.可以为const引用初始化一个非const的对象.字面值,甚至是一般表达式. 2.对引用初始化时必须严格进行类型匹配,但是const引用初始化时不需要类型匹配,只要可以转换为const所定义的类型即可,此时,const引用变量指向了一个用于类型转换的临时量,若引用为非const的,且没有进行类型匹配,则此非const引用也指向临时量,此时如果改变引用变量的值,则只能改变临时量的值,而不能改变初始化时所用变量的值,没有达到通过引用改变所绑定量的值的目的,因此非const引用必须做到严格的类型匹…
const与指针在一起的几种情况. const int *p1; //表示p1本身不是const,指向的变量是const. const *int p2; //语法错误 int const *p3; //表示p3本身不是const,指向的变量是const. int *const p4; //表示p4本身是const,指向的变量不是const. const int *const p5; //表示p4本身是const,指向的变量是const. 区分p本身是const还是指向的变量是const,一个简单…
在c++可以定义一个const变量,然后把变量的值赋给一个非const指针,可以通过指针来改变const变量的值吗?下面的截图给出了答案…
非const引用,只能用object为其赋值: <c++primer>P52 而const引用则可以用临时变量为其赋值: 如: const int &r = 32://可以 int &rr = 32 // error 而且: 非const引用只能绑定到与该引用同类型的对象: const引用则可以绑定到不同但相关的类型的对象或绑定到右值://左值:可以出现在赋值语句的坐标或右边:右值:只能出现在赋值的右边. 当进行string对象和字符串字面值混合连接操作是,+操作符的左右操作数…
const的变量在特定情况下可以通过指针修改,但是在另一些情况下是不能通过指针修改. 以下是VC6下才测试. 1. 不能修改的情况 #include int const a = 10; void main(void) { int *p = (int*)&a; *p = 20; printf("%d\n", *p); } 程序编译通过,但运行时错误: 指示a存储的空间不可以写,也就是没有写权限,不能修改其值.估计是存储在全局空间,且只有可读属性.   2. 能修改的情况 #inc…