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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值