下面給出的程序有一些疑問。任何討論將有助於理解內部。爲什麼char *和int *的行爲不同
#include <iostream>
using namespace std;
int main() {
// your code goes here
char* ptr = new char[11];
ptr = "helloworld";
cout << ptr;
int* ptr1 = new int[2];
//ptr1 = {12, 24};
cout << ptr1;
return 0;
}
- COUT < < PTR;打印helloworld(打印值); cout < < ptr1打印地址不值。爲什麼??
- 因爲cout < < ptr;打印值,如何獲取新char [11]分配給ptr的地址。
- If ptr =「helloworld」;被允許。爲什麼ptr1 = {12,24};不允許?
1.因爲'const char *'有一個單獨的重載,因爲它通常表示字符串。 2.投射到'(void *)'。 3.因爲標準是這樣說的。 – 2013-10-27 15:21:35
'ptr =「helloworld」;'也是不允許的,因爲'ptr'是'char *'。 – Nawaz
@Nawaz爲什麼不允許。 ptr是char *,而「helloworld」是char數組,所以有什麼問題?你可以在這裏查看。 http://ideone.com/QsqKrN允許。 –