char *str ; 是定义了一个指向char 类型的指针变量, * 是声明了该变量是一个指针类型,定义的时候必须加 * 来表明该变量是指针变量。使用的时候则确定str的指向 str = "Rose" 指向的是 "Rose"的起始地址 *str 是当前str所指向的内存存储的值。 str 的右值就是地址 *str 就是这个地址内存中的值。 char *str = "Rose"; 等价于
char *str;
str = "Rose";
指针这一块很烦人 ,多理解,多思考,指针跟数组联系很紧密,如上面的其实就是分配了一个字符数组 ,里面存储的内容是Rose和一个结束标志'\0' ,然后str指向这个数组 |