问题一:
我正在阅读 K&R 的书,我对某些事情感到有些困惑。我对一些简单的指针算术有点困惑。如果我说
char (*a)[10];
我知道我刚刚声明了一个指向 10 个字符的数组的指针。首先,因为我没有 malloc,所以这仍然保留在堆栈中,对吗?所以堆栈中有这个指针指向大小为 10 的 char 数组的开头,对吗?
现在,如果我想访问数组中的第二个元素,我还会做 *(a+2*sizeof(char)) 吗?还是在这种情况下不起作用?
问题2:
如果我有
int* a = malloc(10*sizeof(int));
如果我想从整数数组中获取第二个字节,我会这样做:
*((char*)((char*)a+2))
这个对吗?
谢谢你。