本帖最后由 取名难 于 2021-10-9 09:56 编辑
char* 是一个指针,指针存放的都是地址,char*放的是char型数据的地址,就是字符串的地址 ,计算机会以这个地址为起始点一直往后读,直到遇到‘\0’为止这一串数据当成个整体,被你使用。
你问的应该是char* 和char[]的区别吧,
char[]是字符数组,存放了char型变量的数组,数组的大小,根据你[]内你申请的内存大小或者初始化的时候的元素个数所决定的,数组名相当于这块内存的起始地址
指针和数组两者,都是通过地址来操作数据的,通过指针间接访问那块内存,数组直接访问,两者没有太大差别,看你个人习惯
Ps:char * a = “abc”;//这种定义指针指向的内存在常量区,常量区的数据可以读取但是不能修改,数据大小为4,它会在末尾自动加上'\0',
char b[10] = {a,b,c};
char *c = b;//用指针指向数组,当你对它使用字符串操作的时候,需要在末尾加上'\0',计算机才知道你的数据末尾在哪里,不然它会一直往下查找,容易访问越界,导致段错误。