我需要獲取內存地址和索引位,然後我需要輸出內存地址的索引。誰能幫忙?在printf
如何在C中獲取內存地址並輸出它?
int x;
int* addressOfX = &x;
可以打印出來使用%p
符地址:
我需要獲取內存地址和索引位,然後我需要輸出內存地址的索引。誰能幫忙?在printf
如何在C中獲取內存地址並輸出它?
int x;
int* addressOfX = &x;
可以打印出來使用%p
符地址:
鑑於任何C變量,你可以使用「地址的」運營商&
其地址
printf("%p\n", &x); // Print address of x
要訪問整數值的各個位,可以使用按位移位運算符以及按位AND來將想要的位移到適當位置,然後將其他位屏蔽掉。例如,爲了獲得x
的第5位,你可以寫
int x;
int fifthBit = (x >> 4) & 0x1;
這下移數4位,留在第五位的LSB點。將此值與1(其中最低點爲1位,其他位爲0)將其他位全部屏蔽並返回值。例如:
int x = 31; // 11111
prtinf("%d\n", (x >> 4) & 0x1); // Prints 1
+1比「閱讀指針」更有用,無論是否忠告。 – 2011-01-27 04:31:43
這爲我工作;)
// uses :: head
// ----------------------------------------------
#include <stdio.h>
// ----------------------------------------------
// func :: main
// ----------------------------------------------
int main()
{
void *fooz = "bar";
char addr[64];
sprintf(addr, "%p", &fooz);
// do some stuff with `addr`, or not :)
puts(addr);
return 0;
}
// ----------------------------------------------
打印出像:〜> 0x7ffdfb91d698
我試着用數組做的,但我不能把它做.. – Buckeye 2011-01-27 04:28:31