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