指向char变量的c++ char指针

C++ char pointer to char variable

本文关键字:char 指针 c++ 变量 指向      更新时间:2023-10-16

我得到了一个方法头:

char* thisMethod(char* input){}

是否可以说

char var = input[0];

?我知道"输入"将是一个字符数组的形式。

我显然是c++新手,指针让我迷惑。我试着研究如何使用char指针函数参数,但找不到任何具体的东西来帮助。谢谢你的帮助。

有一种误解可能会给你带来更多的麻烦:

我知道"input"将是一个char数组的形式。

NOPE:根据该函数的作用域,input是指向字符的指针。函数无法知道这样的指针从哪里来。

如果它是在调用函数时从数组中取出的,那么它将是一个pointer to the first element of that array

因为指针有一个允许添加偏移量的算术,并且因为[]操作符应用于指针根据定义翻译为a[b] = *(a+b),在任何代码中,如果a是a指针,*aa[0]是完全同义的。

把数组想象成一个序列方框和一个指针你的食指

手指添加偏移量(如finger+2)意味着"重新指向",而取消引用它(如*finger)意味着"查看指向的内容"。

指针上的[]操作符只是同时进行两种操作的快捷方式。

数组是另一个不同的东西。在处理指针时不要考虑它们,因为在更复杂的情况下,如多维数组或多间接指针,表达式a[b][c]将不再以相同的方式工作。

有两种方法可以从指针获取值,*[]。以下是等价的:

char var1 = *input;
char var2 = input[0];
当您知道传递给您的是一个数组时,使用括号更常见,因为它允许您提供索引。你需要知道数组的结尾在哪里,这样你就不会试图访问它,你的函数错过了这个重要的细节。

只要它在函数内部,input指向有效的东西(不是NULL/nullptr,也不是垃圾位置),那么做char var = input[0];就可以了。和char var = *input一样。

p。S如果它应该是一个字符串,我建议使用std::string .