簡體   English   中英

C ++ char指向char變量的指針

[英]C++ char pointer to char variable

我得到了這樣的方法標題:

char* thisMethod(char* input){}

是否可以說,

char var = input[0];

我知道“輸入”將采用char數組的形式。

我顯然不是C ++指針的新手,這使我不知所措。 我嘗試研究如何使用char指針函數參數,但是找不到足夠具體的方法來提供幫助。 謝謝您的幫助。

有一個誤解可能會導致您陷入更多麻煩:

我知道“輸入”將采用char數組的形式。

注意:在該函數的范圍內, input指向字符指針 該函數無法知道此類指針的來源。

如果它是在調用函數時從數組中獲取的,那么它將是pointer to the first element of that array

因為指針的算術,允許添加的偏移量,並且因為[]應用於指針操作者翻譯為a[b] = *(a+b)按定義,在任何代碼,如果是a指針, *aa[0]是完美的代名詞。

將數組視為一系列盒子 ,將指針視為您的手的食指

手指添加偏移量(如finger+2 )表示“將其重新指向一旁 ”,而取消引用(如*finger )則表示“在其指向的內部看”。

指針上的[]運算符只是同時執行兩項操作的快捷方式。

數組是另一件事。 在處理指針時,請不要去想它們,因為-在更復雜的情況下,例如多維數組或多向指針-表達式a [b] [c]將不再以相同的方式工作。

只要它在函數內部並且input指向有效的東西(不是NULL / nullptr而不是垃圾位置),然后執行char var = input[0]; 很好 char var = *input

PS如果應該是字符串,我建議使用std::string

有兩種方法可以從指針獲取值: *[] 以下是等效的:

char var1 = *input;
char var2 = input[0];

當您知道已傳遞數組時,使用方括號更為常見,因為它允許您提供索引。 您需要某種方式來了解數組的末尾位置,以便您不會嘗試通過數組進行任何訪問,因為函數缺少了這一重要細節。

暫無
暫無

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

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