强制转换为数组类型有什么要求吗?怎样才能将一个int类型的数组转换为char类型的数组?
假设我定义了一个数组intarray[]={0,1};现在将其转化为一个char[4]类型的数组,为什么不能用(char[])array强制将array转化为数组名类型?...
假设我定义了一个数组
int array[] = {0, 1};
现在将其转化为一个char[4]类型的数组,为什么不能用
(char[]) array强制将array转化为数组名类型?
但是,强制转化为数组类型是可以的:
int * p = (int[]){0, 1};
原因何在? 展开
int array[] = {0, 1};
现在将其转化为一个char[4]类型的数组,为什么不能用
(char[]) array强制将array转化为数组名类型?
但是,强制转化为数组类型是可以的:
int * p = (int[]){0, 1};
原因何在? 展开
3个回答
展开全部
你这个想法还真不能直接实现,必须你自己动手,定义一个新的字符数组,然后一个个的强制转换。
追问
但为什么用char[]强制转化可以将{0,1}转化为“数组名类型”呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你衡量“可以转换”的标准是编译通过么?这显然是不严谨的,编译器有时候检查很弱
数组的元素在内存中是依次排放的,换成其他类型以后,内存中存放的对象又不会变化,你用其他类型的数组对象去访问,一定无法访问到正确对象
就如同一排箱子,每个箱子1米正方体,你用2.5米正方体的数组去找他,第二个2.5米正方体在第三个箱子的中间,这样定位到箱子中间的访问有意义么?
数组的元素在内存中是依次排放的,换成其他类型以后,内存中存放的对象又不会变化,你用其他类型的数组对象去访问,一定无法访问到正确对象
就如同一排箱子,每个箱子1米正方体,你用2.5米正方体的数组去找他,第二个2.5米正方体在第三个箱子的中间,这样定位到箱子中间的访问有意义么?
追问
我是想试一下这样能不能像引入union那样,做到类似按位操作的效果。因为这个int数组里的数高位和低位含义不同,原本是要用位操作,现在想想能不能这样强制转化,看来不那么好实现呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询