
C++第二章
可爱头
这个作者很懒,什么都没留下…
展开
-
C++开始: 赋值给一个无符号类型的
C++中,把负值赋给unsigned 对象是完全合法的,其结果是初始值对无符号类型表示数值总数取模后的余数。所以,如果把-1赋给8位的unsigned char,那么结果是255,因为255是-1对256求模后的值。1.从数学角度解读:取模运算时,对于负数,应该加上被除数的整数倍,使结果大于或等于0之后,再进行运算.也就是:(-1)%256 = (-1+256)%256=255%256=25...原创 2019-08-23 16:13:25 · 5465 阅读 · 0 评论 -
C++:关于一些类型定义未初始化的值
std::string a 若未初始化是全局变量,因此值为空字符串。int global_int若未初始化是全局变量,因此值为0lint ocal_int是一个未初始化的局部变量,因此它具有未定义的值。std::string local_str也是一个未初始化的局部变量,但它有一个由类定义的值。 所以它是空字符串。...原创 2019-08-23 16:11:32 · 2168 阅读 · 0 评论 -
C++:指针及引用,----以及viod * ---指针引用
引用必须初始化,引用相当于变量的另外一个名字,但引用不是一个对象,没有实际的地址,且引用不能重新绑定在另外一个对象。指针无须在定义时赋值,指针是一个对象 ,因为引用没有实际的地址,所以不能定义指向引用的指针int i, &a=i;|int *p = a;//是错误的,因为a是一个引用,指针不能定义指向引用 一般情况指针和指针指向的对象的类型是匹配的。void * 一种特殊类型...原创 2019-08-23 16:12:35 · 3432 阅读 · 0 评论 -
C++:const常量
当const修饰指针时:首先非常量引用不能指向一个常量对象,如:const in ci =104;int & r1 = ci;//错误的,因为r1是非常量引用,那意思是我改变r1的值就改变常量的值,所以这样是不争取的。接着常量引用仅对引用可参与的操作做出了限定,对于引用的对象本身是不是一个常量未作限定。因为对象也可能是个非常量,所以允许通过其他途径改变它的值:如:int i ...原创 2019-08-23 16:12:53 · 2756 阅读 · 0 评论 -
C++:指向常量的指针,常量指针,指向常量的常量指针:初始化区别 以及const的引用情况
指针类型的初始化或赋值,(不存在特例的情况下)对象类型都应该严格匹配如下的初始化是或的关系,每次只存在一个初始化,因为方便比较指向常量的指针可以初始化被同类型的常量和同类型非常量,因为是一个指针的特列,可以指向同类型非常量如下: int i = 42; const int h = 0; double x = 3.0; const int *b =&i ;//正确 c...原创 2019-08-23 16:13:01 · 3722 阅读 · 0 评论