簡體   English   中英

C 中的指針和字符串文字

[英]Pointers and string literals in C

假設,在 C 語言中,我有以下代碼,其中指針變量“word”指向字符串文字。

const char * word = "HELLO";

為什么這有效 -

printf("\nword[1]:  '%c'", word[1]);
printf("\nword[2]:  '%c'", word[2]);

這不是嗎?

printf("\nAddress of word[1]:  %p", word[1]);
printf("\nAddress of word[2]:  %p", word[2]);

因為后者是字符而不是指針。 word[1]*(word + 1) ,您只需取消引用 char 指針。 結果是char

你需要:

printf("\nAddress of word[1]:  %p", (void *)&word[1]);
printf("\nAddress of word[2]:  %p", (void *)&word[2]);

或者

printf("\nAddress of word[1]:  %p", (void *)(word + 1));
printf("\nAddress of word[2]:  %p", (void *)(word + 2));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM