我的問題是關於我正在研究的指針算術。混亂的字符數組和指針
在學習過程中,當我將整數數組的地址指定給void
指針並打印指針時,發現我遇到了一個奇怪的行爲,地址被打印出來。
但是,當我試圖給一個字符數組的地址到void
指針和打印指針,它打印數組的條目而不是顯示他們的地址。
#include <iostream.h>
#include <conio.h>
void main()
{
char a[5] = {'h', 'e', 'l', 'l', 'o'};
void *ptr;
ptr = &a[0];
for(int i = 0; i < 5; i++)
{
cout << ptr << endl;
ptr++;
}
getch();
}
輸出:
hello
ello
llo
lo
o
我期待的是,對應的數組元素的地址將被打印。
'main'總是返回類型'int'!哪個編譯器? – Deduplicator
@Deduplicator,99%肯定它是臭名昭着的Turbo C++。 – chris
你看到的行爲不是標準的,但是再一次,'iostream.h'甚至不是一個標準的C++頭,而'conio.h'是完全不必要的。 – chris