关于数组和指针的疑问
程序代码:
#include<iostream> using namespace std; int main() { char *p = "OK"; cout<< *p <<endl; //O cout<< p <<endl; //OK char ch[] = "OK"; cout << *ch << endl; //O cout << ch << endl; //OK int q[] = {1,2,3}; cout << *q << endl; //1 cout << q << endl; //0012ff34(地址值) return 0;
为什么输出p、ch、q的结果是这样?
*p、*ch、*q的作用都是对首地址取引用?
还有,数组名到底是不是指针?
还请大家指教。