我想了解指针是如何工作的,所以我创建了这个小程序。首先,我创建了指向 char 的 ap 指针。
第一个问题是在这一点上。如果我创建一个指针,它的值是一个内存地址(如果我将它指向一个非指针对象),但这次在我的示例中是“哈哈”。为什么它在 char* 中以这种方式工作?以及如何使用 cin >> p 为其增加价值?
我的第二个问题是,我创建了 aq char,它在我创建它时具有 *p 指针的值。但是它的值和地址也是“h”,但为什么呢?一定是这个char对象的内存地址!这是毫无意义的:D(mingw - gcc)
#include <iostream>
int main()
{
/* char *p;
cin >> p; //forexample: haha */
char * p = "haha";
char q = *p;
std::cout << "&q = " << &q << std::endl; //&q = h
std::cout << "q = " << q << std::endl; //q = h
return 0;
}
更多:如果我先用 char a[100] 分配内存;字符 *p=a; 然后&q = h»ŢĹ,所以“h”有些乱。但它应该是一个内存地址!我的问题是,为什么不解决呢?