内存寻址和指针

Memory addressing and pointers

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

如果您使用 char*unsigned char*,递增指针将指向下一个字节。

尝试将 int *iptr 更改为 char *iptr 然后打印 printf("%d", iptr[0]);

how can i access each byte address and print the value stored in it ?

例如下面的方式

unsigned char *p = ( unsigned char * )array;
for ( size_t i = 0; i < sizeof( array ); i++ )
{
    printf( "%d ", p[i] ); 
}