j*****y 发帖数: 1071 | |
d**********x 发帖数: 4083 | 2 最大区别。。void*不能做运算。。。
【在 j*****y 的大作中提到】 : 感觉没区别阿
|
k***x 发帖数: 6799 | 3 In C++, there are three distinct character types:
char
signed char
unsigned char |
j*****y 发帖数: 1071 | 4 可以吧
void * p, 可以做 p + 1
【在 d**********x 的大作中提到】 : 最大区别。。void*不能做运算。。。
|
j*****y 发帖数: 1071 | 5 signed char 和 unsigned char 是不是就是和 一个 byte的integer的感觉一样阿 ?
【在 k***x 的大作中提到】 : In C++, there are three distinct character types: : char : signed char : unsigned char
|
a********m 发帖数: 15480 | 6 你试试看。
【在 j*****y 的大作中提到】 : 可以吧 : void * p, 可以做 p + 1
|
f*******t 发帖数: 7549 | |
d**********x 发帖数: 4083 | 8 至少cpp不行
void的大小未知
【在 j*****y 的大作中提到】 : 可以吧 : void * p, 可以做 p + 1
|
j*****y 发帖数: 1071 | 9 而且这个 p+ 1就是地址的值增加 1 和 char * p 的 +1 是一样的
【在 j*****y 的大作中提到】 : 可以吧 : void * p, 可以做 p + 1
|
j*****y 发帖数: 1071 | 10 我刚才试了 c++ 有 warning, 但是还是 work的
【在 d**********x 的大作中提到】 : 至少cpp不行 : void的大小未知
|
|
|
d**********x 发帖数: 4083 | 11 果然。。g++明确说了标准禁止这个行为,而这次gcc连个warning都没给
【在 j*****y 的大作中提到】 : 而且这个 p+ 1就是地址的值增加 1 和 char * p 的 +1 是一样的
|
j*****y 发帖数: 1071 | 12 我用 g++试了, 可以 p + 1
【在 a********m 的大作中提到】 : 你试试看。
|
d**********x 发帖数: 4083 | 13 = =
原来我试的是p++...
【在 j*****y 的大作中提到】 : 我用 g++试了, 可以 p + 1
|
k***x 发帖数: 6799 | |
l*******b 发帖数: 2586 | 15 void * 不能dereference吧? 另外直接pass 一个别的 Type *给char *会报错? 给void
*没事? |
a********m 发帖数: 15480 | 16 哦。。。俺也从来没用过p+1。。。。
【在 d**********x 的大作中提到】 : = = : 原来我试的是p++...
|
j*****y 发帖数: 1071 | 17 p++确实是不行
【在 a********m 的大作中提到】 : 哦。。。俺也从来没用过p+1。。。。
|
a********m 发帖数: 15480 | 18 以前没注意到这个区别。也有道理。
【在 j*****y 的大作中提到】 : p++确实是不行
|
y******u 发帖数: 804 | 19 p++的语意更严格一些,所以必须指定size
p+1就是个基本加法运算,有default size的吧
【在 j*****y 的大作中提到】 : p++确实是不行
|
j*****y 发帖数: 1071 | 20 void * 的 p + 1 和 char * 的 p + 1 是一样的
【在 y******u 的大作中提到】 : p++的语意更严格一些,所以必须指定size : p+1就是个基本加法运算,有default size的吧
|
|
|
f*******n 发帖数: 12623 | 21 不对。函数指针不可以
【在 f*******t 的大作中提到】 : 任何类型的指针都是void*
|
y***u 发帖数: 205 | 22 pointer的size都一样,不同类型的pointer对于地址的运算不一样,传递void*比较灵
活,可以强制转化成不同的类型 |
h**6 发帖数: 4160 | 23 用reinterpret_cast,任何类型直接互转。 |
t*********7 发帖数: 255 | 24 void*没有指定指针的类型,表示这个指针可以随时被指定为任意类型,方便重用.很多书
的best practice都是FREE完指针之后,再让指针变成空指针的原因. |
l*******b 发帖数: 2586 | 25 这个说的是null吧?
【在 t*********7 的大作中提到】 : void*没有指定指针的类型,表示这个指针可以随时被指定为任意类型,方便重用.很多书 : 的best practice都是FREE完指针之后,再让指针变成空指针的原因.
|
l*******b 发帖数: 2586 | 26 这个和big endian , little endian 有关?
【在 h**6 的大作中提到】 : 用reinterpret_cast,任何类型直接互转。
|