问题描述
- 为什么赋给值指针(动态指针)值时,两次输出不一样?并且输出的地址也不一样,怎么让它们一样
- #include
#include
using namespace std;
main()
{
string str1;
cout<<""输入一个数"";
cin>>str1;
char *Num1=new char[str1.length()];
int *num1=new int[str1.length()];
str1.copy(Num1str1.length()0);
for (int i2=0;i2<str1.length();i2++)//第一次输出
{
*num1=*Num1-48;//转换成数字,赋值给动态指针
cout<<*num1<<endl;//输出指针值
cout<<num1<<endl;//输出地址
num1++;
Num1++;}cout<<endl;for (int i=0;i<str1.length();i++)//第二次输出{ cout<<num1; num1++; cout<<endl;}
解决方案
你改变了指针,那么肯定得不到了。
除非你再加一个变量在你修改以前
int *num1=new int[str1.length()];
int * oldnum1 = num1;
解决方案二:
你要什么和什么一样。不同的地址,不同的值当然不一样。你要一样就赋值呗。
时间: 2024-12-17 07:35:12