c++ - C++ 中的 char 和 char* 有什么区别?

标签 c++ pointers

学习Schaum的C++书中的代码,我看到了很多使用char*、int*等的代码。 在做练习时我还看到在解决方案中有 char* 并且在我的代码中我使用了 char (没有星号)。

我想知道 char 和指针 char - 整数和指针整数之间的区别是什么?我应该在哪里使用它们?它们的含义究竟是什么?

最佳答案

*的变量是指针。

“普通”变量,例如 char 或 int,包含该数据类型本身的值 - 变量可以包含字符或整数。

指针是一种特殊的变量;它本身不保存值,它包含内存中值的地址。例如,char * 不直接包含字符,但它包含计算机内存中某个字符的地址。

您可以使用 & 获取“普通”变量的地址:

char c = 'X';
char * ptr = &c;  // ptr contains the address of variable c in memory

然后通过在指针上使用 * 获取内存中的值:

char k = *ptr;  // get the value of the char that ptr is pointing to into k

参见 Pointer (computing)在维基百科中。

关于c++ - C++ 中的 char 和 char* 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481945/

相关文章:

c++ - 从位图中提取像素数据时出现问题

c - VLA 和通过 malloc 进行动态内存分配有什么区别?

c - 两个结构体的指针指向彼此类型的结构体作为成员?

c - 关于指针和内存访问的疑问

C++无效指针错误

C++ 子程序 vector<vector<short>> 指针

c++ - 断点不会影响CLion

c++ - 多类中的多线程

c++ - C++ 中用户定义类型的顺序类型转换

c++ - Boost:触发并忘记异步函数调用?