char *str = "hello";
在這樣的代碼中,我可以使另一個指針 (例如,可以有兩個指針指向同一個字符串嗎?
char *strptr = NULL;
,使這個指向字符串str,「你好」(是這樣的:strptr-> STR- > 「你好」或strptr - > 「你好」 < -str)
我試過雙指針,或改變指針類型..但都以失敗告終
char *str = "hello";
在這樣的代碼中,我可以使另一個指針 (例如,可以有兩個指針指向同一個字符串嗎?
char *strptr = NULL;
,使這個指向字符串str,「你好」(是這樣的:strptr-> STR- > 「你好」或strptr - > 「你好」 < -str)
我試過雙指針,或改變指針類型..但都以失敗告終
char * str = "hello";
您現在想要第二個指針,就像第一個指針一樣。因此,請像第一個char * strptr
一樣申報。
現在它應該指向同樣的事情。現在你會怎麼做?你如何製作一些與A相同類型的東西,保持與A相同的信息?
您指派它。
char * strptr = str;
注意到,這兩個str
和strptr
目前指向只讀存儲器,並應可能是const
出於這個原因。 (除非你真的知道你在做什麼,並且想用指針指向以後的其他東西。)
菊花鏈像@DevSolar建議的作品,但對於更詳細的答案檢查此鏈接:http://stackoverflow.com/questions/3815400/c-pointers-point-to-the-same-address – PseudoAj
是的,2個指針確實可以指向相同的數字。
const char *a = "str";
const char *b = a;
他們現在指向相同的字符串。
而問題的另一部分:
char * str = "hello";
char ** strptr = &str;
只有這段代碼顯示正是我想!自從'cout' hsa被C了以後,非常感謝你 – WoW
你可以做
char *strptr = str;
所以你會得到strptr - > 「你好」 < - 海峽
指針引用內存地址。您可以通過使用&
運算符來獲得內存地址本身,雙指針指向指向另一個內存地址的內存地址,因此您將擁有所謂的strcpr->str->"hello"
這是指向另一個指針的指針。下面是一個例子:
char *str = "Hello!";
char **strp = &str;
// The memory address for the string
printf("%p\n", &str);
// This would print the same address as the previous command as
// they both reference the same string
printf("%p\n", strp);
// This prints the value of your string
printf("%s\n", *strp);
請注意雙指針如何指向第一個字符串的內存地址。輸出應該是Hello!
。
編輯:C語法
'strptr-> STR - > 「你好」 或strptr - >的 「hello」< - str' - 這些都不是有效的。你有什麼問題?如何將一個變量複製到另一個變量?請閱讀C書。在這裏提出特定的問題不會給你全貌。 – Olaf