没有类型的指针
特点:无法获取数据,无法计算,但是可以接收任意地址。
不同类型的指针之间,是不能相互赋值的
void类型指针打破上面的观点
优点:void没有任何类型,好处是可以接收任意类型指针记录的内存地址
缺点:void类型的指针,无法获取变量里面的数据,也不能进行加、减的运算
#include "stdio.h"
void swap(void* a, void* b, int len);
int main()
{
int a = 10;
int b = 11;
int* p1 = &a;
int* p2 = &b;
//printf("%d\n", *p1);
//printf("%d\n", *p2);
//void* p3 = p1;
//void* p4 = p2;
swap(&a,&b, 4);
printf("a=%d\n",a);
printf("b=%d\n",b);
return 0;
}
void swap(void* a, void* b, int len)
{
char* pc1 = a;
char* pc2 = b;
char temp = 0;
//以字节为单位,一个字节一个字节的进行交换
for (int i = 0;i < len; i++)
{
temp = *pc1;
*pc1 = *pc2;
*pc2 = temp;
pc1++;
pc2++;
}
}
输出结果:
a = 11
b = 10
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。