は、私はその上でグーグルをした、と私はいくつかは、それはいくつかは、それができないと言う ことができると言うことに気づきました。文字列リテラルのアドレスを出力できますか?
私はちょうど検証したいと思います。例えば
char gchararr1i[] = "testing 123"; // global char array init
char *gptr1i = "hello", *gptr2ui; // global char pointer init and un-init
float gfloati = 123.4; // global float var init
double gdoubleui; // global double var un-int
int main(int argc, char *argv[]) {
printf("\n Address of string literals \"testing 123\" = %p and \"hello\" = %p \n", gchararr1i, gptr1i);// output the addresses of string literals "testing 123" and "hello"
f1(10, -20, 30.3, 'A', 45.67);
exit(0);
}
これは可能ですが、技術的にはポインタを 'void *'にキャストする必要があります。 – user3386109
void *へのポインタをキャストするだけでどういう意味ですか?とにかく、それが可能なら、私が印刷した方法は正しいのですか? –
など。 'printf(" address =%p \ n "、(void *)gchararr1i);' C仕様では、 '%p' *の引数は' void * 'でなければならないと書かれていますが、 。 – user3386109