0

The following expression is used in C to get the address of a particular element.

 &a[x]

What is the type of the value returned? What is this dependent on? Is it always the same by convenetion or is it dependent on the operating system?


I need to know this because:

I need to extract a bit pattern from within this pointer so Im trying to understand whether the value is hex or binary. When you say a pointer is it like: 0x25434 or like 0111000111?

Becuase that would affect how I extract my bits

4

2 に答える 2

6

Tの配列の場合、戻り値の型はTへのポインターであり、次のように宣言されT *ます。

T a[] = ...;
T *ptr = &a[n];

このポインタがどのように表示されるか(2進数、16進数、10進数、Morse)は、完全にそれを表示するコード次第です。format値はデバッグによく使用%pされる選択肢であり、通常はポインターの値(メモリアドレス)を16進数で出力します。

ポインターが指すアドレスを数値で表す必要がある場合は、ポインターをuintptr_t整数型にキャストすることで取得できます。

uintptr_t addr = (uintptr_t) ptr;

次に、アドレスのビットを通常の算術演算子と二項演算子で検査できます。

于 2013-03-16T18:54:03.030 に答える
0

if a[] is array of int, it will be int*, for example. If you new to C language, i would recommend you read this book http://en.wikipedia.org/wiki/The_C_Programming_Language

于 2013-03-16T18:55:25.427 に答える