char str[] = "hello world";
char *mStr = str;
cout << *&str << endl; //输出 hello world
cout << *mStr << endl;//输出 h 为什么不输出hello world???
char *mpStr = &str;//这里为什么会显示语法错误???
1.stræ¯æ°ç»ï¼strç¸å½äºæ°ç»é¦å°åã
2.mStr æå strï¼ç¸å½äºæåäºæ°ç»ç第ä¸ä¸ªå°åï¼*mStr å°±è¾åºhã
3.stråªæ¯ç¸å½äºæ°ç»é¦å°å,ä½æ¯å¯¹æ°ç»ååå°åï¼&str å¾å°çæ¯ä¸ä¸ªæåæ´ä¸ªå°åçæéï¼ç±»åæ¯charï¼*ï¼[12]. æ以第ä¸è¡è¾åºhello worldã
4. æå ä½ å°char* æåä¸ä¸ªç±»åæ¯charï¼*ï¼[12] ç±»å å½ç¶å°±ä¸å¯¹äºãä¼æ¥è¯æ³é误ï¼ä½ å¯ä»¥è¿æ ·å char *mpStr = (char*) &str; 强å¶è½¬æ¢
ä½ å¯ä»¥åèå¾çç解ä¸ä¸ï¼æé纳ï¼
我们来看看
char str[] = "hello world"; // str is a (字符数组)字符指针, 具体点是 A12_c, 12个字符数组,char[12]char数组的数组名是char*类型的,储存着数组第一个元素(下标为零)的地址,所以令一个指针等于数组名,再对该指针解引用,输出的是数组的地址元素而不是整个数组
另外,数组是储存在一串(暂且这么说)地址中,比如char a[5]={...},数组a的5个元素储存5个不同地址中,&a[n]+1=&a[n+1],