char* p = “abc“;字符,字符串,字符指针,格式输出

char* p = "acb";

printf("%c",*p+1);   a+1->b
printf("%s",*p+1);   报错,类型不匹配
printf("%c",*(p+1)); a后面的c
printf("%s",p);      acb
printf("%s",p+1);    cb
printf("%c",p);      报错,类型不匹配

为什么类型不匹配?
1、p,指针,char型指针;门牌号,例如0x12345678
2*p *(p+1) *p+1 都是地址存储内容,或者内容的变化;家里的人,例如 一号门牌里面是97
3%c 是将小于256的【数字】按照ascii的规范打印出来。指针是地址,我们可用的地址一般都大于ascii的范围。至于地址可用范围以及一般怎么用,下回分解。
4%s,是解析char型指针,将这个地址以及与其连续的一串字符打印出来,遇见‘0’停止。
5、为什么上面3说,把数字按规范打印,明明是abc啊!!因为所有的数据都是用数字的形式存在内存,abc在内存里也都是数字,97 98 99,你要说,我把abc用%d形式能不能打印?自己试试就知道了,还有%x,等等各种格式。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值