char *cp = "Hello Dongnao";
printf("cp 数据: %s\n", *cp); // 我一开始这样写的,一直报错
printf("cp 数据: %s\n", cp); //但是这样写,可以输出Hello Dongnao
一个是*cp,一个是cp
我希望能帮我解释下,这两者的差异,谢谢
char *cp = "Hello Dongnao";这句话的意思是声明了一个类型是char*的变量cp,并且"Hello Dongnao"的首地址赋值给cp,所以printf("cp 数据: %s\n", cp)打印整个字符串,而*cp是取cp的内容(cp的内容是"Hello Dongnao"的首地址)所以*cp其实是‘H’不能用%s打印可以用printf("cp 数据: %d\n", *cp);查看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。