C++类与指针函数的小问题

最近开始学习C++,看到了一小段程序,不是很理解,问问大神们。

函数意思是先调用setName() ,传入一个字符型数组,然后再调用getName() 获取数组。
可是该函数getName() 为指针型函数,那么为什么返回值不是一个地址,而是一个字符串??

 char* CPerson::getName() 
{ 
    std::cout<<m_cName<<std::endl;
    return m_cName; //函数为指针型函数,那么为什么返回值不是一个地址,而是一个字符串??
}
int CPerson::setName(char cName[25])
{
    strcpy(m_cName,cName);
    return 0;                               //执行成功返回0
}

m_cName怎么定义的?应该它本身就是一个指针(char *类型),你看看。

char* 本来就可以直接赋值字符串,只不过存储在常量区。
char *a = “helllo”; 等价于 char *a = getname() {return “hello”;}

char* 本来就是属于指针 ,这段地址是一段连续的字符 ,连续起来看就是字符串,可以用*对象输出这段地址中的一个字符

数组名本身就是指针,返回了地址

指针本来存的就是数据存放的地址.
使用指针是根据地址查询数据的

数组或字符串的名字就是指针呐,比如可以这样 char a[100] = "helloworld"; char *p = a; 等价于这样 char *p = &a[0];

意思同各楼,数组名相当于一个指针,课本教材上也有说过,他指向数组的首地址。
char* m_cName[25];
char* pStr=m_cName;
可以说类似于
char* get_cName(){return m_cName;}
m_cName是指向char型数组的指针

strcpy(m_cName,cName);就是个C库函数的调用,两个参数都是char指针。 m_cName就是个指针啊。c语言里面字符串就是char*。