C++ 指向字符数组的指针的索引
我试图找出,为什么以下程序的输出是“WAHNAHNN” 我的问题是: 为什么索引i高于p[4](即超过数组的长度)以及为什么它在“WAHN”之后产生另一个“AHNN” 我仍然对p+I(应该是一个位置)和*(p+I)之间的区别感到困惑,p+I应该是一个值。为什么在这两种情况下,输出都是一个值C++ 指向字符数组的指针的索引,c++,arrays,pointers,C++,Arrays,Pointers,我试图找出,为什么以下程序的输出是“WAHNAHNN” 我的问题是: 为什么索引i高于p[4](即超过数组的长度)以及为什么它在“WAHN”之后产生另一个“AHNN” 我仍然对p+I(应该是一个位置)和*(p+I)之间的区别感到困惑,p+I应该是一个值。为什么在这两种情况下,输出都是一个值 #include <iostream> using namespace std; int main() { char a[] = "WAHN"; char *p = a
#include <iostream>
using namespace std;
int main()
{
char a[] = "WAHN";
char *p = a;
for (int i=0; p[i]; i=i+1)
switch (i%2) {
case 0: cout << p+i;
break;
case 1: cout << *(p+i);
break;
}
return 0;
}
#包括
使用名称空间std;
int main()
{
字符a[]=“WAHN”;
char*p=a;
对于(int i=0;p[i];i=i+1)
交换机(i%2){
案例0:coutp+i的类型是char*
运算符的p+i
类型为char*
运算符原因是运算符很难理解您的混淆。i=0打印字符串“WAHN”,i=1打印字符“A”,i=2打印字符串“HN”,i=3打印字符“N”请不要添加C标签到包含C++代码的问题中。原因是操作符很难理解你的困惑是什么。i = 0打印字符串“WHHN”,i = 1打印字符“A”,i = 2打印字符串“HN”,i=3打印字符“n”。这就是你的代码。@ MpRimeNE请不要向包含C++代码的问题添加C标记。