[英]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
指針, *a
和a[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.