C/C++基础

C/C++基础

1.基本数据类型

在这里插入图片描述

  1. 整型 ,一个整型int占用32bit, 也即4Byte, 取值范围 − 2 31 -2^{31} 231
    ~ + ( 2 31 − 1 ) +(2^{31}-1) +(2311)(约为 1 0 9 10^9 109)。
  2. 浮点型 ,对单精度float来说,一个浮点数占用32bit,其中1bit作为符号位、8bit作为指数位、23bit作为尾数位,有效精度6-7位;对双精度double来说,一个浮点数占用64bit, 其中依照浮点数的标准,1bit作为符号位、11bit作为指数位、52bit作为尾数位,有效精度15-16位。一般只使用double存储浮点数。
  3. 字符型char字符型使用ASCII码统一编码, 标准ASCII码的范围是0~ 127,小写字母比大写字母的ASCII码值大32;

修饰符类型
C++ 允许在charintdouble 数据类型前放置修饰符。有signedunsignedlongshort四种。
修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型。修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。
C++ 允许使用速记符号来声明无符号短整数或无符号长整数。可以不写 int,只写单词 unsigned、short 或 unsigned、long,int 是隐含的。

2.输入输出控制

  1. C中的scanfprintf输入/输出
    在这里插入图片描述
    在这里插入图片描述

  2. C++中的cincout输入/输出
    需要添加头文件 #include <iostream>和 声明using namespace std; 才能使用。用法:cin>>n; cout<<n;

  3. C中的getchar()putchar()gets()puts();
    getchar用来输入单个字符(可读回车), putchar用来输出单个字符,gets()用来输入一行(包括空格),puts()用来输出一行(包括空格)。

  4. C++中的cin.get()cin.getline()getline();

///getline()接受一个字符串,可以接收空格并输出
   string str;  getline(cin,str);
   
///cin.getline()接受一个字符串,可以接收空格并输出
   char m[20];  cin.getline(m,5);  //(1)实际最多接收4个字符+1个’\0’
   char m[20];  cin.getline(m,5,’a’); //(2)接收‘a’前的字符串
 
///cin.get()接受一个字符或字符串,可以接收空格并输出
   char ch;  ch=cin.get(); //(1)接受单个字符
   char a[20]; cin.get(a,20); //(2)接受字符串,与cin.getline()类似,但不忽略回车

3.常用数学运算

需要引用数学头文件 cmath

  1. fabs(double); 返回浮点数的绝对值
  2. abs(int); 返回整数的绝对值
  3. floor(double); 返回浮点数的向下取整值
  4. ceil(double);返回浮点数的向上取整值
  5. round(double);返回浮点数的四舍五入值
  6. pow(double r,double p); 返回 r p r^p rp
  7. sqrt(double); 返回算术平方根
  8. log(double);

4.数组

  1. 如果数组大小较大(大概 1 0 6 10^6 106 级别), 则需要将其定义在主函数外面, 否则会使程序异常退出。
  2. memset函数可对数组中每一个元素赋相同的值memset(a,0,sizeof(a));

5.字符串

C风格的字符串

实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};等价于char str[] = "Hello";
string.h头文件包含了字符数组的函数:

  1. strlen(s1); 返回字符串 s1 的长度。
  2. strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
  3. strcpy(s1, s2);复制字符串 s2 到字符串 s1。
  4. strcat(s1, s2);连接字符串 s2 到字符串 s1 的末尾。
C++ 引入的 string 类类型

string可以直接通过cin读取,通过cout输出。但通过scanf时需要预先分配空间,通过printf输出需要将string转换成字符串数组。

string a;
a.resize(100); //需要预先分配空间
scanf("%s", &a[0]);
printf("%s\n", a.c_str()); //c_str()将string转换成char[]

string对象的操作:

  1. s.empty() 如果s为空串,则返回true,否则返回false
  2. s.size()=s.length() 返回字符串长度
  3. s.substr(n)获得字符串s中从第n位开始到末尾的字符串
    s.substr(n,l)获得字符串s中从第n位开始长度为l的字符串
  4. s=s1+s2 把s1和s2链接成一个新的字符串
  5. s1=s2 把s1内容替换为s2的副本
  6. ==,!=, <, <=, >, >= 保持这些操作的惯有含义
  7. s=to_string(n)c++11函数,将数值转换成string
  8. atoi(str.c_str())stoi(str,[n],[a])c++11函数,将string转换成数值,有效10位
  9. s.upper()转换为大写;s.lower()转换为小写
  10. insert()erase()
  11. str.find("s")==string::npos判断是否能在str中找到字符s

6.指针和引用

指针

指针变量存放的是地址,在普通数据类型后加*来表示这是指针变量,如int* pdouble* pchar* p,p是指针变量名。
int a; int* p = &a;等价于int a; int* p; p = &a;

引用

C++中的引用符号&,与C中的取地址符&没有关系。
引用是对原变量取的别名,在函数传参中使用int &a,a是对原始变量n直接进行操作。

7.结构体

可以使用结构体内构造函数对结构体进行初始化

struct stu{
	int id;
	int age;
	//自定义构造函数
	stu(int _id,int _age):id(_id),age(_age){}
} stuinfo;

这样可以在main函数中直接对结构体变量进行赋值了

stuinfo=stu(17220000,20);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值