虽然我在 C++ 中使用 char* 数组尝试了一些示例程序,但程序的输出对我来说不是很清楚。
示例代码
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<string>
using namespace std;
int main()
{
string val="val1";
char* hello[10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
hello[1]=(char*)val.c_str();
val="val2";
printf("The val in hello[1] is :%s\n",hello[1]);
hello[3]=(char*)val.c_str();
printf("The val in hello[3] is :%s\n",hello[3]);
}
结果 :
The val in hello[1] is :val2
The val in hello[3] is :val2
但是同样的程序我附加了字符串
val.append("val2"); //val="val2";
结果是
The val in hello[1] is :val1
The val in hello[3] is :val1val2
您能否解释一下,输出如何给出 2 个不同的结果?