我对int
数组到char*
的转换有疑问。以下代码的输出为23
。但我不明白为什么。有人可以向我解释吗?C - int数组到char *转换
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main(){
uint32_t x;
uint32_t* p = (uint32_t*) malloc(sizeof(uint32_t));
uint32_t array[9] = {42, 5, 23, 82, 127, 21, 324, 3, 8};
*p = *((char*)array+8);
printf("1: %d\n", *p);
return 0;
}
[指针运算的可能的复制(char \ *)&a \ [1 \] - (char \ *)&a \ [0 \] == 4](https://stackoverflow.com/questions/20486661/pointer-arithmetic-char-a1-char- a0-4) –