C语言基础

本文详细介绍了C语言的基础知识,包括数据格式化输出、类型转换、输入输出函数的使用、表达式和语句的执行规则、位运算以及递归函数等。讲解了printf和scanf的用法,如%d、%u、%p等格式化标志,并提到了预处理器#define的作用。此外,还涉及了位字段(bit field)的概念和对齐(Alignment)特性。
摘要由CSDN通过智能技术生成

Data:

%#o, %#x, %#X -> 0, 0x, 0X:产生对应的八进制,十六进制前缀

要使一个小的常量被当做long,可以在后面添加l或L,如7L

打印unsigned int使用%u;h可以用作short类型的前缀,如%hd等

当char和short作为参数被传入一个函数时会被自动转换成int型,float会被转换成double

compiler默认会将浮点数作为double型,要想将一个浮点数作为float,需要在其后添加f或F,如2.3f

使用%e可将浮点数以指数形式打出

使用%p打印地址

sizeof()是获得数据的byte数,类型是size_t,C99和C11使用%zd表示sizeof获得的数据(C的byte是指char的大小,在某些系统中char大于8bit)

char的大小是一个byte

printf输出的数据首先被送到buffer中,当buffer满了,或有newline,或即将进行输入时,buffer中的数据会被送至屏幕

typedef new_type int -> 可以用new_type定义新变量

C的Bool类型:_Bool(在包含了stdbool.h头文件后,可以使用bool)



Formatted Input/Output

当用scanf获得string时,假设name[20],则scanf("%s", name)。注意scanf使用的是地址,所以用name

之所以#define不需要使用分号,是因为替换机制是由预处理器完成的,不是一个C语句

%10d表示打出的数据占10位,在最右。如果想从左边开始的话,应使用%-10d

%5.3d表示数据占5位,3是补零的宽度,即至少显示3位,不够的补零

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值