Day 1 C/C++复习

1.整型

short

int

long long

整型int:32位,4字节,在-231~231-1之间,记住绝对值在10^9范围内的整数都可以定义为int型;
长整型long:64位,8字节,-263~263-1之间,1010-1018之内的数都可以定义为long型,一般在初值后加 LL;

2.浮点型

单精度float

32bit,1bit作为符号位,8bit作为指数位,23位作为尾数位,-2128-2128,但是有效精度只有6~7位(由2^23得到),精度不是很高;

双精度double

64bit,52bit作为尾数位,有效精度15~16位
由于精度问题,对于浮点数类型,都用double储存,f%是浮点型的输出格式

3.字符型

char

1)字符变量和字符常量

char c;
char c = 'e';
printf("c%",c)

2)转义字符

\n表示换行……

3)字符串常量

char str1[25] = "Wo ai de ren bu ai wo";
printf("%s",str1);

4)布尔型

bool型变量,true和false,或者使用整型常量对其赋值,非零为true,C语言中要使用stdbool.h头文件才可以使用,使用d%输出bool变量时,输出对应的0和1

3. 强制转换(小可以自动转大,大强制转小)

4.符号常量和comst常量

1) #define 标识符 常量(没有“;”)

例如:

#define PI 3.1415

也就是替换,程序中使用PI自动转为3.1415使用

2) const 数据类型 变量名 = 常量;(有“;”)

同样的用法,一旦他们确定值后就无法改变,推荐使用const用法

  • define除了定义常量以外,还可以定义任何语句或片段*
#include<stdio.h>
#define ADD(a,b) ((a)+(b))
int main()
{
   int num1 = 3,num2 = 5;
   printf("%d",ADD(num1,num2));
   return 0;

}

不能写成
#define ADD(a,b) (a+b)
因为在宏定义下,直接将对应的部分替换,再进行编译和运行 ,比如:

#include<stdio.h>
#define CAL(x)(x * 2 + 1)
int main()
{
   int a = 1;
   printf("%d\n",CAL(a+1));
   return 0;
}

上面代码在进行替换时是a+1*2+1,得到结果并不是想要的5,而是4

5.运算符

1)算术运算符: + - * / % ++ –
2)关系运算符: < > <= >= == !=
3)逻辑运算符: && || ! 与或非
4)条件运算符:?: 唯一的三目运算符
使用:A?B?C
判断A,A为真,执行B,A为加,执行C
5)位运算符: << 左移 , >> 右移 , | 或 , & 与 ,^ 位异或 , ~位取反
因为int的上限是2^31-1或2-30-1,程序中的无穷大数INF可以进行一下设置

const int INF =1<<30) - 1;
或
condt int INF = 0x3fffffff;

6.scanf输入和printf输出

int a,b,c;
scanf("%d",&a);		//& 取地址符
printf("%d",a);
scanf("%d:%d:%d",&a,&b,&c);	//输入时必须按照格式a:b:c输入,如1:2:3
scanf("%d:%d:%d",&a,&b,&c);	//正常输入: 3 4 5

scanf除了c% ,其他格式符的输入都是以空格,换行等作为结束标志,因此c%才会读入空格跟换行,其他都会跳过,s%以空格和换行作为结束
** int(%d)
long long(%lld)
float(f%)
double(lf%)
char(c%)
**
字符串(char数组)(s%)输入时不使用“&”,因为数组特殊,数组名就代表数组的首地址

#include<stdio.h>
int main(){
	int a;
	char c,str[10];
	scanf("%d%c%s ",&a,&c,str);
	printf("a=%d,c=%c,str=%s",a,c,str);
	return 0;
} 

输入45 a asd 得到a=45,c= ,str=a,因为c读到了空格

printf与scanf格式控制的变化:
double输出使用==%f==,输入时scanf使用==%lf==

三种实用的输出格式:

1)%md 使不足m为的int型变量进行右对齐输出,高位用空格填充,数据超出m为,保持原样输出
2)%0md 使用0填充
3)%.mf 让浮点数保留m位小数输出

7.使用getchar和putchar输入/输出字符

getchar用来输入单个字符,putchar输出单个字符

#include<stdio.h>
int main(){
	char c1,c2,c3;
	c1 = getchar();
	getchar();
	c2 = getchar();
	c3 = getchar();
	putchar(c1); 
	putchar(c2);
	putchar(c3);
	return 0;
} 

输入abcd,输出acd,b被第二个getchar()接受

8.typedef定义别名

例如:typedef long long LL;

9.常用Math函数

1.fabs(double s) 取绝对值
2.floor(double x)和ceil(double x) 向下向上取整
3.pow(double r,double e) 幂函数
4.sqrt(dounble x) 开方函数
5.log(double x) 返回以自然底数为底的对数
6.sin(double x)和cos(double x),tan(double x)
7.asin(),acos(),atan()反三角函数
8.round(double x) 对x四舍五入,返回double型,进行取整要强制转换

2019.12.23

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值