在很多C程序钟,都看到这样的用法,如
A 和 B是2个结构
func(A *p)
{
B *pStr;
pStr = (B *)p;
/*对于结构指针pStr的操作*/
.........
}
1、在进行指针类型转化时,需要注意什么?
2、结构A 和 结构B 应该有什么关系么(父类?子类?)?
ps:我倒是知道,经常将入参的指针类型生命为 (void *),然后在函数内部,再将其转换为其他类型的指针。
甚么父类子类的,又不是c++就像一本书,你觉得非常好,可是他觉得很差,书,还是书,没有变,变的是你们两个对书的想法(也就是对这断内存中数据的解析方式不同而已)
哦,的确,这里面不涉及到什么父类、子类的问题,我也只是随便联想了一下。
指针所表达的就是内存中的一个地址,如果是一个相对小的 被 转换成 一个相对大 的,
那么,会出问题么?
会有越界问题么?
我的提问可能不是很清楚,希望可以得到高手的点拨
如果sizeof(A)> =sizeof(B)没有越界问题.否则会引起越界问题的.
这个看使用者是如何做了.
内存象一块面,数据类型象一个模子,同样一块面,使用不同的模子切,会展现不同的形状,需要考虑的是,切面时一定要切在系统允许你切的面上,
1、在进行指针类型转化时,需要注意什么?
你要清楚这两个类型,清楚为什么要转
2、结构A 和 结构B 应该有什么关系么(父类?子类?)?
A B 起码大小以至,一般要求数据格式一致
给你看个例子就完了:
structarpcom {
struct ifnet ac_if;/* network-visible interface */
u_charac_enaddr[6];/* ethernet hardware address */
structin_addr ac_ipaddr;/* copy of ip address- XXX */
structether_multi *ac_multiaddrs; /* list of ether multicast addrs */
intac_multicnt;/* length of ac_multiaddrs list */
};
struct arpcom arp_com;
struct arpcom *p_arp_com = &arp_com;
struct ifnet *ifp = &(arp_com.ac_if);
那么p_arp_com是一个指向arpcom结构的指针,ifp是指向arpcom结构中的ifnet结构的指针。
这两个指针的值是一样的。
这个时候就可以这样用:
struct arpcom arp_com;
struct arpcom *p_arp_com = &arp_com;
struct ifnet *ifp;
.
.
.
ifp = (struct ifnet *)p_arp_com;
分享到:
相关推荐
计算机组成原理之C语言类型转换 本文将探讨C语言中的一些基本概念,包括强制类型转换、补码表示、无符号整数和有符号整数等。这些概念是计算机组成原理的基础,理解这些概念对于学习计算机组成原理非常重要。 一、...
本篇文章将详细探讨C语言中的三种主要类型转换:自动类型转换、强制类型转换以及指针类型的转换。 ### 自动类型转换 (Implicit Type Conversion) 自动类型转换,也称为隐式类型转换,是指在某些操作中,编译器会...
在现代C编程中,更倾向于使用前面两种方式来进行类型转换。 类型转换虽然提供了灵活性,但也伴随着潜在的问题。例如,当将大范围的类型转换为小范围的类型时,可能会导致精度丢失,如将双精度浮点数转换为单精度...
### C语言隐式类型转换规则详解 #### 一、引言 C语言作为一种广泛使用的编程语言,具有严格的类型检查机制。在C语言中,不同类型的数值可以通过类型转换来进行混合运算。这种转换分为两种:隐式类型转换和显式类型...
在LabVIEW编程环境中,强制类型转换是至关重要的一个环节,特别是在涉及到数据通信,如TCP/IP通信时。本文将深入探讨LabVIEW中强制类型转换的概念、使用场景以及具体操作方法。 LabVIEW是一种图形化编程语言,它的...
C语言中int到float的强制类型转换 在C语言中,强制类型转换是非常常见的操作之一,而int到float的强制类型转换则是其中一种非常重要的类型转换。在项目中经常会遇到需要将int类型的数据转换为float类型的情况,这...
在C语言中,数据类型转换是一个基础且重要的概念,它涉及到如何将一种数据类型转换为另一种数据类型,以便于运算和处理。在编程过程中,由于参与运算的数据类型不一致,类型转换变得尤为重要。本文将深入探讨C语言中...
本文主要探讨了C语言中的数组访问机制及其与强制类型转换之间的关系。通过具体的编程示例,文章深入解析了一个特殊的问题:如何将一个指向一维整型数组的指针转化为能够被视作二维数组的指针,并成功传递给一个期望...
本文将基于给定的文件信息“C语言实现数值类型转换源代码”,深入探讨C语言中数值类型转换的相关知识点,包括基本概念、常见类型转换方法以及实际应用中的注意事项。 ### 一、数值类型转换的基本概念 在C语言中,...
类型转换是C语言中一个强大但危险的功能。正确使用类型转换可以提高程序的性能和灵活性,但不当的使用可能导致精度丢失、数据溢出甚至程序崩溃。程序员应该深入理解类型转换的规则和风险,并遵循安全的编程实践,以...
在C语言编程中,为了能够灵活地访问这些寄存器,开发者往往需要使用到结构体指针,并且在某些情况下可能还需要对这些指针进行强制类型转换。本文将详细介绍结构体指针的定义、使用方法以及在STM32开发中如何进行强制...
C语言数据类型转换 C语言数据类型转换是指在不同数据类型的量混合运算时,由编译系统自动完成的类型转换过程。以下是C语言数据类型转换的详细知识点: 1. 数据类型转换发生在不同数据类型的量混合运算时,由编译...
5. C风格类型转换:在C++中,尽管不推荐,但仍然可以使用C语言风格的类型转换,如 `(类型)(表达式)`。这种转换方式缺乏安全性,可能导致意外的类型行为,应尽量避免。 6. 类型安全与类型转换:在进行类型转换时,要...
C语言变量类型的转换,字符,整形,字符串!
C语言中强制数据类型转换的总结 C语言中强制数据类型转换是非常重要的,需要逐步进行,有些是自然的转型,有些需要根据需要强制转换。下面我们将详细讨论数据类型转换的规则和机制。 首先,需要了解数据类型转换的...
C++的数据类型转换包括静态类型转换(static_cast)、动态类型转换(dynamic_cast)、强制类型转换(C-style cast)和const_cast。这些转换在处理多态性和内存管理时非常有用。对于时间戳,C++标准库没有直接提供...
C语言数据类型转换的规则和实践 C语言数据类型转换是指在不同的数据类型之间进行转换,以适应不同的运算和赋值操作。在C语言中,数据类型转换可以分为隐式转换和强制转换两种形式。隐式转换是由编译器自动完成的,...
数据类型转换就是将数据(变量、表达式的结果)从一种类型转换到另一种类型。例如,为了保存小数你可以将int类型的变量转换为double类型。 数据类型转换的一般格式为: (type_name) expression type_name为要转换到...
在C语言中,数据类型转换是一项基础且至关重要的技能,它涉及到不同类型的数据之间的相互转化。C语言提供了多种数据类型,包括基本类型(如int、char、float、double等)、构造类型(如数组、结构体)以及枚举类型等...