将类型转换为从大到小的数据类型会导致C中的数据丢失吗?

将类型转换为从大到小的数据类型会导致C中的数据丢失吗?,c,C,我急切地想知道,大的存储数据或指针是如何向小的、没有 失去他们的 为简单起见,我举了这个例子,但我会尝试用大的 结构指针(结构有更多成员)指向小 int存储在char,double到int,你的问题不是很清楚 当然,将一个值从一种类型转换为一种具有较少可用位的类型将丢失不适合的位,因此如果使用这些位,它们将丢失。否则它会去哪里 对于指针,问题就更不清楚了,一般来说,指向对象的大小并不影响指针的大小 鉴于: struct small { int a; }; struct big { int b[1

我急切地想知道,大的存储数据或指针是如何向小的、没有 失去他们的

为简单起见,我举了这个例子,但我会尝试用大的 结构指针(结构有更多成员)指向小


int
存储在
char
double
int
,你的问题不是很清楚


当然,将一个值从一种类型转换为一种具有较少可用位的类型将丢失不适合的位,因此如果使用这些位,它们将丢失。否则它会去哪里

对于指针,问题就更不清楚了,一般来说,指向对象的大小并不影响指针的大小

鉴于:

struct small { int a; };
struct big { int b[1000]; };

<> p> >代码< > SeZeof(StultSub)>代码>小于 SsieOf(StultBig*),在许多典型的现代系统中,它们将是完全相同的大小。

你是喜剧小子:),它也适用于C++,这就是为什么我添加了,愚蠢的问题……在你的问题中有遗漏的单词,你提到的例子也不见了。因此,请回答您的问题,并更加明确。“将一个值从一种类型转换为可用位较少的类型将丢失数据”取决于该值<代码>(字符)1不会丢失信息
(int)1.2
将丢失信息。@chux很好,我已经编辑过,试图使推理更清晰。谢谢。旁白:考虑到6.3.1.4的潜在UB,以可移植的方式确定
float
值是否会转换为
long
,而不会丢失信息不是一个小问题。OP可能会问一些类似的问题,但帖子并不清楚。