不同类型的指针相互转换的话,需要强制类型转换

Posted 軒邈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同类型的指针相互转换的话,需要强制类型转换相关的知识,希望对你有一定的参考价值。

/*
	2022.06.07
	目的:
		不同类型的指针相互转换的话,需要强制类型转换

	理论:
		1.对应类型的指针,只能保存对应类型数据的地址;
		2.如果想让不同类型的指针相互赋值的时候,需要强制类型转换;
		3.通用类型的指针 void* p 可以保存任何类型的指针; 
		4.“* + 指针”取几个字节,由指针类型来决定。

	功能:

*/

#include<stdio.h> 

int main(void)

	int a = 0x12345678, b = 0xabcdef66;
	printf("%0x %0x\\n", a, b);

	int *ip_1, *ip_2;
	ip_1 = &a;
	ip_2 = &b;
	printf("%0x %0x\\n", *ip_1, *ip_2); /* 字符型指针,所以表示四个字节地址的内容 */

	char* p1, * p2; 
	p1 = (char *)&a; 
	p2 = (char *)&b;
	printf("%0x %0x\\n", *p1, *p2);    /* 字符型指针,所以只会表示一个字节地址的内容 */

	return 0;


/*
	程序运行结果:

		12345678 abcdef66
		12345678 abcdef66
		78 66

*/

以上是关于不同类型的指针相互转换的话,需要强制类型转换的主要内容,如果未能解决你的问题,请参考以下文章

不同类型的指针相互转换的话,需要强制类型转换

在编译时,我得到“错误:不同指针类型 'char*' 和 'char (*)[200]' 之间的比较缺少强制转换”在线

指针与强制类型转换

C++强制类型转换

指针强制类型转换的理解

基本类型的类型转换