我的问题是关于我正在研究的指针算术。混乱的字符数组和指针
在学习过程中,当我将整数数组的地址指定给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