关于C++动态指针的问题

[复制链接]
查看11 | 回复4 | 2010-6-13 21:07:29 | 显示全部楼层 |阅读模式
#include
using namespace std;
char *string_uppercase(char *string)
{ char *new_address,*temp;
new_address =new char[strlen(string)+1];
temp=new_address;

while(*string!='\0')

*new_address++=(char)toupper(*string++);

*new_address='\0';

return(temp);
}
void main(void)
{ char *title = "C++ is a better C.";
char *string;

string = string_uppercase(title);
cout│new char[strlen(string)+1]│
└——————————————————┘


temp以下代码while(*string!='\0')*new_address++=(char)toupper(*string++);*new_address='\0
回复

使用道具 举报

千问 | 2010-6-13 21:07:29 | 显示全部楼层
new_address = new char[strlen(string)+1]得到一个变量,把变量地址赋给
new_addressnew_addRess其实就是一个地址数据,通过这个数据可以找到变量。temp=new_address; temp也是一个地址数据,可以通过这个数据找到变量, temp 和new_address数据相等
回复

使用道具 举报

千问 | 2010-6-13 21:07:29 | 显示全部楼层
temp=new_address;//把new_address的地址付给temp?这样为什么能保证以后temp的值随着new_address的变化而变化看清楚哦,tmp=new_address是把new_address的值付给tmp,只是new_address是个地址把了。要想实现把new_address的地址付给temp,应该是char **tmp
回复

使用道具 举报

千问 | 2010-6-13 21:07:29 | 显示全部楼层
一句话,NEW的地址给了TEMP。如果NEW的值变动了。在运行一句。 temp=new_address;TEMP的值就会变成现在的新NEW值。 如果不运行这句。TEMP就还是上次temp=new_address;地址指向的值。
回复

使用道具 举报

千问 | 2010-6-13 21:07:29 | 显示全部楼层
加我我告诉你
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行