最主要的区别是第一个赋值,你得不到想要的结果。
char *ab="abc";
你这样赋值,只能保留一个字母a
第二个倒是能得到你想要的结果
char*ab="abc"这是一个字符数组,占3个字节。
char ab[ ]="abc"则不同,它是一个字符串,最后还有一个'\0'结束符,占4个字节
字符串的表示形式
一个是用字符数组实现
一个是用字符指针实现
字符指针初始化:把字符串首地址赋给ab
第一个是地址变量,;存放字符串首地址第二个是地址常量,由若干元素组成,每个元素放一个字符
*ab :系统只会给这个指针变量分配一个存储单元,并且这个存储单元中存放的数据时字符'a'的地址
ab :系统会为ab分配4个存储单元用来存放'a','b','c','\0'
没区别,用起来是一样的
没区别