C语言中强制类型转换究竟改变了什么
答案:4 悬赏:20 手机版
解决时间 2021-11-19 14:12
- 提问者网友:王者佥
- 2021-11-19 02:46
C语言中强制类型转换究竟改变了什么
最佳答案
- 五星知识达人网友:鸽屿
- 2021-11-19 03:26
改变了地址跨度
比如
int* a;
int占4个字节,这样a+1的时候实际上是加上4个地址长度
如果(char*)a + 1的话,由于char占一个字节,所以这个加一实际上是加上一个地址长度。
比如
int* a;
int占4个字节,这样a+1的时候实际上是加上4个地址长度
如果(char*)a + 1的话,由于char占一个字节,所以这个加一实际上是加上一个地址长度。
全部回答
- 1楼网友:洒脱疯子
- 2021-11-19 05:52
强制转换类型改变了变量活常量的类型。如:char a ,int b,如果我们想把b转换成char类型,就可以这样(char )int b.之后b就变成char类型了。强制转换就是在要转换的前面加一个()里面是你想要转换的类型追问嗯嗯,我知道转换的格式,他究竟改变了什么,?内存中时怎么实现的?指针么?追答这是C语言规定的,也就是在使用它时,系统员已经为我们编制好了,只需调用。如果真的想知道它是怎么来的,它是用汇编语言编的。
- 2楼网友:舍身薄凉客
- 2021-11-19 05:24
如果是非指针的强制类型转换,那就是进行了计算,例如double转int;如果是指针的强制类型转换,修改了地址的跨度,以及对所指向的数的解析。例如一个int指针指向原本是float格式的数的内存后,就会按照int的标准解析这块内存。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯