是很久以前某大神在群里讲的了…

字符类型在语法上有三种类型,但是在语义上是两种。

即 char 、unsigned char、signed char…

对它们进行操作符重载的话,不会报错…

但是如果是int 、unsigned int、signed int 就会报错。

 

对字符常量进行sizeof,比如:

sizeof(‘a’);

在C下面和sizeof(int)是一样的

但是在C++里面就是1

C/C++ 标准 – 不一样。

 

哦还要注意 sizeof ‘a’; 这样写,也是可以的

 

再,强制类型转换  int(a) 是单目运算符吧

然后 解引用 *p也是前缀单目运算符吧

书上是不是有提到从右往左。

sizeof(int) *p 代表什么?

实际上是 sizeof(int) *(乘号) p

 

再比如:

int a[10]

cout << a < a+1 << endl;

cout << a-1 < a << endl;

都没问题,但是在OS系统下面…没了。

C语言规定,两个地址(指针)比较大小,只有在有限的条件下才是有良好定义的。

 

再比如:

 

这里 a的地址一定在b的前面吗?

这个呢?

C++规定,一个类的成员,只保证同样访问权限元素的相对位置相同。

比如都是public 或 都是 Private,则定义顺序和它的实际顺序是相同的,如果是不同权限的话,编译器可以任意处理。

 

关于引用占不占空间的问题。

引用是一个别名,跟其他变量一样,占不占空间要看编译器的具体情况。如果优化程度高的话,可能就优化掉了。

 

关于16进制的问题

/x00

/xooa

/xoooa

长度都是2 因为它是:

/xhh… …(无限长)

 

 

…所以…并没有什么意义,就是随手一写吧。有错望指正。

杂记…一些C++相关的东西…
Tagged on:
0 0 投票数
Article Rating
订阅评论
提醒

0 评论
内联反馈
查看所有评论