每当指针变量加1时,它将指向下一个整数的位置(在这种情况下为前四个字节)作为跨越四个字节的int变量数据。
如何访问每个字节地址并打印存储在其中的值?
#include <stdio.h>
int main(int argc, char* argv[])
{
int array[2] = {20,30};
int *iptr ;
iptr = array ;
printf("Address of data = %p\n", &array[0]);
printf("Address of data = %p\n", &array[1]);
}
答案 0 :(得分:3)
如果使用char*
或unsigned char*
,递增指针将指向下一个字节。
答案 1 :(得分:3)
如何访问每个字节地址并打印存储在其中的值?
例如以下方式
unsigned char *p = ( unsigned char * )array;
for ( size_t i = 0; i < sizeof( array ); i++ )
{
printf( "%d ", p[i] );
}
答案 2 :(得分:2)
尝试将int *iptr
更改为char *iptr
,然后将其打印为printf("%d", iptr[0]);