指向char变量的c++ char指针
C++ char pointer to char variable
我得到了一个方法头:
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
指针,*a
和a[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
.
相关文章:
- 构造函数 (C++) 中的 char 指针参数存在问题
- 将 char 指针传递给接受对 char 数组的引用的函数
- 分配值时,C++ char* 指针上的前递增与后递增
- char指针或char变量的默认值是多少
- 为什么为char指针分配内存不会截断char序列
- 愚蠢的问题:strcat和char指针
- 使用 ctypes 从函数返回字符串C++会给出大的 int,而不是 char 指针
- 打印char指针的Unicode和文本值
- 应对 std::字符串中的 std::<char>指针转换后的向量
- 一系列char指针
- 为什么可以将Char指针变量初始化为字符串,而INT指针变量不能初始化到整数数组
- 将char指针传递给cin和cin.get()
- 在C和C++中,将int值转换为char指针的差异
- std :: cout null char*指针中止该程序
- char指针违反访问权限
- const char指针在结构中声明
- 将字符串转换为 char 指针可以指向的 char 数组/值的最有效方法是什么
- 将Char指针数组传递到C 中的函数
- 获取错误C2440:char []* char*(指针)
- 删除Char指针在destructor中不起作用