小知识点的积累-c语言

目录

1.类型转换:

2.常用占位符表格

3.常用的转义字符

4.输出格式:

5.函数库里一些好用的函数

6.可能会疏忽的地方

7.其它:


1.类型转换

显示(强制)类型转换:

将一个数据类型的值强制转换为另一种数据类型的值。强制类型转换可以使程序员在必要时对数据类型进行更精确的控制,但也可能会导致数据丢失或截断。

eg:double a=2.4;

printf("%d",(int)a);        //答案为2

·易错点:

double result;

result=3/2;//错误,正确写法是:result=3.0/2  或者  result=3./2;

                                                      或者  result=3/2.0 或者  result=3/2.

2.常用占位符表格

%c字符格式%d十进制整型格式

%lld

十进制整型格式

(long long int)

%f

浮点格式(一般对应float)
%lf浮点格式(一般对应double)%g根据数据自动规定浮点数输出格式,即输出时会自动决定保留到第几位
%lg跟%f与%lf类似%luunsigned long long int

·对于%f与%lf,输出时常会用到'%.xf ' / '%.xlf '格式化输出保留到小数点后x位的结果。

·如果输出结果要区分二进制,八进制,十六进制,可以 ’%#b‘ / ’%#o‘ / ’%#x‘

3.常用的转义字符

\n 换行,\t 制表符(形如table键效果),\f(换页符)---其实现阶段不常用= =

特殊情况:%%表示%            \"表示"                \\表示\

4.输出格式

int num=122,num2=10;

·printf(“-*%d%d”,5,num,num2);

其中:“-”是表示左对齐;“*”是指定字段宽度。

代码最终表示:左对齐输出整数且字符宽度为五个字符。(如果num为六位数及以上,则仍占六位及以上的字符宽度,不会被压缩)

输出:122  10(中间隔了两个空格),如果没有加“-”,则会输出  12210(122前面有两个空格)

·printf(“0*%d”,5,num);

输出:00122(“*”左边的0是占位符,五个宽度,122占三个,剩下两个给0占咯)

5.<math.h>函数库里一些好用的函数

·pow(底数,乘方数),eg:pow(a,3)表示a的三次方,该函数返回值是double类型

·sqrt(被开根数),eg:sqrt(a)表示根号a,sqrt只能开平方根,其实用pow同样可以实现开根,甚至更好用,比如对a开三次方根可以这么写---pow(a,1.0/3)

·M_PI,该宏定义了Π的近似值,main函数里直接doube pi=M_PI即可

·abs(a)表示a的绝对值,a是整型数,函数值返回整型

·fbs(a)也表示a的绝对值,a是浮点数,函数值返回浮点型

·ceil(a)以浮点数向上取整;floor(a)以浮点数向下取整;

6.可能会疏忽的地方

·switch语句只能判断整数类型的值,即switch()括号里面的表达式只能是整数类型

·c语言中表示数学中的a<b<c,需要这么写a<b && b<c,容易忘记!

·if语句的判断条件中,等于很容易只写"=",注意应该是"==",容易写漏!

·字符串最后一定会有\0,不要漏掉,否则别用%s去输出

·定义静态数组后,可以先简单初始化,养成好习惯

·malloc动态分配内存记得free掉,且需引用头文件<stdlib.h>

·两个指针可以相减,结果不是字节长度(地址差),而是单元位置差

·char *str="Hello";    //这样写,字符串的地址只读不可写(被编译器放到代码区去了)

即不可以*str[1]='A'这么操作,必会报错。

char str[]="Hello";       //可读可写,可以str[1]="A"

一般地:构造字符串->用数组,处理字符串->用指针

7.其它

·<ctype.h>中tolower()函数作用是将字符转换为小写字母,挺好用

·strcpy,strcmp,strlen这些个处理字符串的函数也挺好用

·0x3f3f3f这个值不是整数的最大值,但它在特定的算法应用中具有特殊的含义,这个值十六进制表示也比较简洁,做题可以将它宏定义,在题中当成最大最小值来用

·单语句换行用"\"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值