c 中有许多强制转化, 下面我们就详细的解释一下强制转化。
首先 我们的理解强制:
1. unsigned long a; int b = (int )a; // 如何理解
2. void *p ; int *c=(int *)p; // 如何理解?
理解1 : 关于整型变量 只需要记住一点就好了 变量的地址中存的就是变量的值 这样就好理解了 强制转化。 关于long 和int之间的转化需要看pc的大小端。
理解2: 主要要理解指针地址中存的是一个地址值(要明白 char *p 中p代表地址 *p代表取地址中的值)。 所以指针的强制就是把地址对应的值强制转换。
Notes: 常见的指针前置转换 处理整型指针之间的强转,大多数情况下都是和void *之间转换。