https://blog.youkuaiyun.com/johnny710vip/article/details/6725637
char *p = "abc"
char * 修饰 p , p为指针
p的值 为字符串首地址, 动态赋予的
p是一个变量, 有自己的存储单元和单元地址
char p[10] = "abc"
用法?区别?
char* p_tochar = "abc"; //
char array[] = "abc"; //在栈上分配内存
//都在常量区创建字符串, 都获取到字符串首地址 , 这俩地址可能一样,可能不一样
p ="abc";
// 在常量区 定义一个字符串, 指针指向该地址 , 可行
*p = 'a';
// 不可行 , 运行时错误, 他只是一个指针变量
p_tochar = array ; //可以隐式转换 从char[] 到 char* 反之不行
//作为参数传递时
//数组做参数会传指针 , 两者无区别
//eg *p 取地址指向的值, 但如果是下面这种
char *str[3] = {"stra","sb","sc"};
char *p = str[0];
int i =0;
while(i<3){
printf("%s",p++);
i++;
}
//stra tra ra

博客介绍了C++里char *修饰指针p的相关内容。p的值是字符串首地址且可动态赋予,p本身是变量,有自己的存储单元和单元地址,还提及用法与区别,但未详细说明,给出了相关博客链接。
2502

被折叠的 条评论
为什么被折叠?



