我想了解指針是如何工作的,所以我創建了這個小程序。首先我創建一個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