Redian新闻
>
void * 和 char * 有区别吗?
avatar
d*x
2
最大区别。。void*不能做运算。。。

【在 j*****y 的大作中提到】
: 感觉没区别阿
avatar
k*x
3
In C++, there are three distinct character types:
char
signed char
unsigned char
avatar
j*y
4
可以吧
void * p, 可以做 p + 1

【在 d**********x 的大作中提到】
: 最大区别。。void*不能做运算。。。
avatar
j*y
5
signed char 和 unsigned char 是不是就是和 一个 byte的integer的感觉一样阿 ?

【在 k***x 的大作中提到】
: In C++, there are three distinct character types:
: char
: signed char
: unsigned char

avatar
a*m
6
你试试看。

【在 j*****y 的大作中提到】
: 可以吧
: void * p, 可以做 p + 1

avatar
f*t
7
任何类型的指针都是void*
avatar
d*x
8
至少cpp不行
void的大小未知

【在 j*****y 的大作中提到】
: 可以吧
: void * p, 可以做 p + 1

avatar
j*y
9
而且这个 p+ 1就是地址的值增加 1 和 char * p 的 +1 是一样的

【在 j*****y 的大作中提到】
: 可以吧
: void * p, 可以做 p + 1

avatar
j*y
10
我刚才试了 c++ 有 warning, 但是还是 work的

【在 d**********x 的大作中提到】
: 至少cpp不行
: void的大小未知

avatar
d*x
11
果然。。g++明确说了标准禁止这个行为,而这次gcc连个warning都没给

【在 j*****y 的大作中提到】
: 而且这个 p+ 1就是地址的值增加 1 和 char * p 的 +1 是一样的
avatar
j*y
12
我用 g++试了, 可以 p + 1

【在 a********m 的大作中提到】
: 你试试看。
avatar
d*x
13
= =
原来我试的是p++...

【在 j*****y 的大作中提到】
: 我用 g++试了, 可以 p + 1
avatar
k*x
14
C++不鼓励用void*的吧?太容易出错了
avatar
l*b
15
void * 不能dereference吧? 另外直接pass 一个别的 Type *给char *会报错? 给void
*没事?
avatar
a*m
16
哦。。。俺也从来没用过p+1。。。。

【在 d**********x 的大作中提到】
: = =
: 原来我试的是p++...

avatar
j*y
17
p++确实是不行

【在 a********m 的大作中提到】
: 哦。。。俺也从来没用过p+1。。。。
avatar
a*m
18
以前没注意到这个区别。也有道理。

【在 j*****y 的大作中提到】
: p++确实是不行
avatar
y*u
19
p++的语意更严格一些,所以必须指定size
p+1就是个基本加法运算,有default size的吧

【在 j*****y 的大作中提到】
: p++确实是不行
avatar
j*y
20
void * 的 p + 1 和 char * 的 p + 1 是一样的

【在 y******u 的大作中提到】
: p++的语意更严格一些,所以必须指定size
: p+1就是个基本加法运算,有default size的吧

avatar
f*n
21
不对。函数指针不可以

【在 f*******t 的大作中提到】
: 任何类型的指针都是void*
avatar
y*u
22
pointer的size都一样,不同类型的pointer对于地址的运算不一样,传递void*比较灵
活,可以强制转化成不同的类型
avatar
h*6
23
用reinterpret_cast,任何类型直接互转。
avatar
t*7
24
void*没有指定指针的类型,表示这个指针可以随时被指定为任意类型,方便重用.很多书
的best practice都是FREE完指针之后,再让指针变成空指针的原因.
avatar
l*b
25
这个说的是null吧?

【在 t*********7 的大作中提到】
: void*没有指定指针的类型,表示这个指针可以随时被指定为任意类型,方便重用.很多书
: 的best practice都是FREE完指针之后,再让指针变成空指针的原因.

avatar
l*b
26
这个和big endian , little endian 有关?

【在 h**6 的大作中提到】
: 用reinterpret_cast,任何类型直接互转。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。