C语言随记(一)

这个笔记是平时在学习,开发的时候遇到的一些被遗忘的点做补充。

一:

printf("%*.*...",...);这里我遗忘是因为以前遇到过这个:scanf("%*...",...);
这里的两个是不一样的,第一个里面的”*“是要通过后面的一个整形参数填充的,所以输出样式大概就是:
printf("%3.3...",...);这个样子的,后面的那个*号代表跳过的意思,就比如scanf("%*s",...);
此时输入的字符串实际上是会被跳过的,所以对应后面的char *里面是没有被填充的,这里还有一个小应用scanf("%s%*c",...);这里后面实际上只需要跟一个字符串缓冲区就好了(上面那个也一样可以这么做)这个就可以直接解决回车遗留在缓冲区的问题(”%s”遇到制表符(tab,空格,回车)的时候就会停止输入,此时停止的那个符号及后面的东西都会被遗留在缓冲区带下一个i函数读取,这里的%*c实际上就是等效于加了一个getchar()在后面)

二:

一个伪字符串格式输出的方法:
嗯灰常有趣的一个东西:

#include<stdio.h>
int main()
{
    printf("%.*s",5, &"Hello World"[6];//printf("%.*s",5, &6["Hello World"]);
    return 0;
}

其实有一点点基础的都可以很轻松的分析出来,先解引用然后再取址给%s输出,说白了就是*(POINT + int)一个模式的,哈哈
后面的注释是另一种表达方法,原理就是上面的那一个(出自《C专家编程》,好久没看了,是时候回去好好重新品品了,是本好书,假期会补上他的笔记的!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值