内存寻址和指针

时间:2015-03-05 13:12:39

标签: c pointers memory

每当指针变量加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]);
 }

3 个答案:

答案 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]);