C语言/C++基础知识回顾(一) 整型,浮点,字符,转义,字符串,bool, 强转,符号常量&const常量

本文回顾了C语言/C++的基础知识,包括输入输出、变量命名规则、整型(int, long long)、浮点型(float, double)、字符型、转义字符、字符串常量、布尔型(bool)的使用,以及强制类型转换和符号常量与const常量的差异。强调了在编程中少用宏定义,多用const常量的建议。" 109847761,10239489,C++字符串与模式匹配算法详解,"['C++', '数据结构', '算法', '模式匹配']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.用于输入输出

#include<stdio.h>
#include<cstdio>

以上两种书写方式等价

2.变量名的第一个字符必须是字母或下划线

3.整型

有:int  和  long long

绝对值在十的9次方范围内或者是32位数字的整形都可以定义成int 型  ,用%d输出

绝对值在十的18次方以内或者64位整数就用long long

注意:如果 long long 型赋大于二的三十一次方减一的初值,则需要在初值后加上LL

long long bignum=123456789012345LL

不知道到底是多大,保险一点用到long long 的时候,就都在初值后加上  LL  吧

4.浮点型

单精度float:   6~7位有效精度

双精度double:15~16位有效精度

其中 %f 是float和double型的输出格式

注意:对浮点型来说,只要记住一点,不要使用float, 碰到浮点型的数据都应该使用 double 来存储。

5.字符型

字符变量:int num ,char c,其中m 和 c 的值都能改变,所以称为变量

字符常量:字符常量(必须是单字符)必须用单引号标注,例如:'Z' 'J' 'U'

#include<stdio.h>
//#include<cstdio>
#include<math.h>
//#include<cmath>
#include<string.h>
//#include<cstring>
int main(){
	char c1='z',c2='j',c3=117;
	printf("%c%c%c",c1,c2,c3);
	return 0;
}

解读:在计算机内部,字符就是按照ASCII码存储的,‘u’的ASCII码就是117,因此把117赋值给c3就是把ASCII码赋值给c3

%c是char型的输出格式

6.转义字符

换行通过“\n”表示

Tab键通过"\t"来表示(就是空格)

空字符NULL用"\0"来表示

例子:

#include<stdio.h>
using namespace std;
int main(){
	int num1=1;
	int num2=2;//直接定义了,不用输入了,scanf函数用不上了 
	printf("%d\n\n%d\n",num1,num2);
	printf("%c",'7');
	return 0; 
} 

结果:

如果把'7' 改为单纯的数字:

结果并不会输出数字7,因为ASCII为7的字符是控制字符,并且控制响铃,计算机会响一下

结果:

7.字符串常量

就是双引号标记的字符集,例如:"WoAiNi"

C语言中只能用字符数组的方式,C++中可以用string类型

字符串常量可以作为初值赋给字符数组,并使用%s的格式输出。

#include<stdio.h> 
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	char str1[25]="ni tou fa luan le";//字符数组str1[25] 
	char str2[35]="xie xie ni";//字符数组str2[35] 
	printf("%s,%s",str1,str2);
	return 0;
}

结果:

注意:不能把字符串常量赋值给字符变量,错误写法:char c="abcd" , 其中 c 是字符常量。

 8.布尔型(bool 型)

在C++中直接使用,C语言中需要添加头文件<stdbool.h>

取值只能是true 或者 false ,分别代表 非零(正整数和负整数)  和  零。

赋值时,可直接使用true 或者 false 进行赋值,也可使用整型变量进行赋值,只不过整型变量在赋值给bool 型变量时会自动转换为 true 或者 false.

对计算机来说,true 和 false 在存储时分别为 1 和 0 ,如果使用%d 输出 bool 型变量,则 true 和 false 会输出 1(true

和 0(false)

例子:

#include<stdio.h>
using namespace std;
int main(){
	bool flag1=0,flag2=true;
	int a=1,b=1;
	printf("%d %d %d\n",flag1,flag2,a==b);
	return 0;
}

结果:

分析:计算机把  a==b 作为条件进行判断,符合即为true 

9.强制类型转换

格式如下:(新变量名)变量名

只需要把需要变成的类型用括号括着写在前面就行了 

例子:

#include<stdio.h>
int main(){
	double r=12.56;
	int a=3,b=5;
	printf("%d\n",(int)r);
	printf("%d\n",a/b);
	printf("%.1f",(double)a/(double)b);
	return 0;
}

结果:

分析:

(1)a/b 整数除以整数在计算机中视为整除操作,不会自动变为浮点数

如果想进行平常认知中的除法,前面加一个 double 就好了 (double)a/(double)b

(2)%.1f 意思是保留一位小数输出

10.符号常量和const常量

符号常量:

就是“替换”,用一个标识符来代替常量,又称为“宏定义”或者”宏替换“

格式为:#define 标识符 常量

             #define pi 3.14   (注意末尾不加分号 : !!!) 

例子:

#include<stdio.h>
#define pi 3.14
int main(){
	double r=3;
	printf("%f\n",pi*r*r);
	return 0;
}

const常量 :

格式: const 数据类型 变量名=常量;

            const double pi=3.14;  (注意要加上分号 ; !!!)

#include<stdio.h>
using namespace std;
const double pi=3.14;
int main(){
	double r=3;
	printf("%.2f\n",2*pi*r);
	return 0;
}

总结:以上两种方法均成为变量,一旦确定就不能更改,例如pi=pi+1 这种写法是不对的。

          推荐使用const 

拓展:define 除了可以定义常量外,还可以定义任何语句或片段

           格式举例:#define ADD(a,b) ((a)+(b))

           功能解释:可以直接使用  ADD(a,b) 来代替 a+b 的功能。

举例:

#include<stdio.h>
using namespace std;
#define ADD(a,b) ((a)+(b))
int main(){
	int num1=3,num2=5;
	printf("%d",ADD(num1,num2));
	return 0;
}

注意:a)(b)要单独加括号呀!因为宏定义是直接将对应的部分替换,然后才进行编译和运行

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

结果:

分析:为什么答案不是 5 呢?

答:这是宏定义的陷阱,它把替换的部分直接原封不动替换进去,导致cal(a+1)实际是(a+1*2+1)

总之:少用宏定义,多用const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值