问给一个指针赋值的区别解决办法

问给一个指针赋值的区别
char   *duan(char   *strdest)
{
char   *address   =   strDest   ;//这个与下面一个赋值到底是什么呢
char   *address   =   &strDest   ;
}

------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;//这个与下面一个赋值到底是什么呢
char *address = &strDest ;
}

a. strdest != strDest in C/C++. Be careful the case of the characters.
b. WRONG --> char *address = &strDest; no way to do this. you cannot assign the
address of a (char *) pointer to another (char *) pointer.



------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;//这个与下面一个赋值到底是什么呢
char *address = &strDest ;
}
=============================
char *address = strDest;
address指向strDest所指向的对象,即指向了同一个对象,比如strDest指向对象a,
a的地址是0x01,那么此时address,strDest的值均为0x01
char *address = &strDest;
同上假设,strDest的值为0x01,但它这个指针变量的地址是0x02,
此时address的值为0x02,指向strDest变量,类型为char **
------解决方案--------------------
指针就是要类型匹配,一级二级分清楚。还有一个作用域不能有同名变量
------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;//这个与下面一个赋值到底是什么呢
char *address = &strDest ;
}
最好写成:
char* duan(char* strdest)
{
char* address = null;
address = strDest;
address = &strDest; // ???
}
------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;/*这里的address指针和strdest指针指向同一个地址(即传入参数的地址*/
char *address = &strDest ;//这里的address指针指向 strdest
}


------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;//这个与下面一个赋值到底是什么呢
char *address = &strDest ;
}

1) strDest != strdest
2) &strdest is a point to a point to char, but address is a point to char, cannot conver char ** to char *
------解决方案--------------------
char *duan(char *strdest)
{
char *address = strDest ;//指向和strDest指向相同的对象(指向的地址相同)
char *address = &strDest ; //strDest是函数参数,放在参数空间中,而address指向这个参数空间
}