我想了解指针是如何工作的,所以我创建了这个小程序。首先我创建一个p指针,它指向一个char。char和char *(指针)
的第一个问题是在这一点上。如果我创建一个指针,它的值是一个内存地址(如果我将它指向一个非指针对象),但这次在我的例子中是“哈哈”。为什么它在char *中以这种方式工作?而我怎么能用cin >> p增加它的价值呢?
第二个问题是,我创建A Q炭,其在我创建它的点的* P指针的值。但它的价值和地址也是“h”,但为什么?它必须是这个char对象的内存地址!这是毫无意义:d(MinGW的 - GCC)
int main() {
char *p;
cin >> p; //forexample: haha
char q = *p;
cout << "&q = " << &q << endl; //&q = h
cout << "q = " << q << endl; //q = h
return 0;
}
更多:如果我分配内存第一使用char [100]; char * p = a;那么& q = h»ŢĹ,所以“h”有些乱七八糟。但它应该是一个内存地址!我的问题是,为什么它不是地址呢?
这不是安全的。 'p'没有任何内存供您输入。 – chris