求助c++primer plus对于4.20程序指针多次赋值的疑问
  • 板块学术版
  • 楼主世间无忧愁
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/17 22:05
  • 上次更新2023/11/2 13:09:55
查看原帖
求助c++primer plus对于4.20程序指针多次赋值的疑问
59296
世间无忧愁楼主2023/10/17 22:05

//在程序中他先定义了一个char类型的指针和数组

char animal[20];
char * ps;
cin>>animal;
ps=animal;

然后他开辟出来一个新的空间用ps指针来指向这个空间,但是之后有用strcpy来又对ps进行了一次数组的复制

ps = new char[strlen(animal)+1];
strcpy(ps,animal);
cout<<ps<<"at"<<(int *)ps<<endl;

我的理解是ps先是做为指针直接指向了这个新空间,然后将animal里面的字符串复制给了ps指向的那片新空间里面,但是为什么这里面没有用“*”号解除引用而是直接用ps这个指针呢?以及后面输出的时候 他直接cout了ps这个指针,要输出他的地址反而需要强制ps转换为指针类型,这样来看ps已经成一个字符串了,但是之前申明的时候他不是一个指针么

2023/10/17 22:05
加载中...