开发者社区> timerring> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

10min快速回顾C++语法(一)

简介: 本系列文章旨在短时间内回顾C/C++语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。
+关注继续查看

C++的语法奠基(一)

⭐写在前面的话:本系列文章旨在短时间内回顾C/C++语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。

一、详解一个标准的程序结构

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World"<<endl;
    
    return 0;
}

1.1 常见头文件

#include <cstdio>

C标准的IO:里面有两个函数,printf与scanf。

#include <iostream>

cin>>读入; //想象是从cin中拿到变量中去

cout<<输出; //想象是从变量中输出到cout中去

注意:cout在输出浮点数时会默认保留为科学计数法的形式,要想去处这个形式,需要进行强制类型转化。

#include <cmath>

常见的数学函:sqrt(x)等等

1.2 using namespace std;

使用常见的命名空间:常见的库函数都在std这个命名空间里

  • 只要保证在同一个命名空间里没有变量名冲突即可,不同的命名空间中出现冲突是没有关系的。
  • 如果不加这句,那么在下面使用过程中就必须加上std::cout的符号

1.3 return

作为一个程序,最后一定是要返回0,如果不返回0,则代表有问题。

二、语法常识

2.1 变量

2.1.1 变量的类型
类型关键字范围
布尔型bool0,1
字符型char-128~127
整形int$-2^{31}$~$2^{31}-1$
浮点型float6~7位有效数字
双浮点型double15-16位有效数字
#include <iostream>
using namespace std;
int main()
{
    bool false/true  1Byte;
    char 'a','c','/n'  1Byte;
    //注意,在C++中char型必须用单引号'',单双引号意义不一样
    int a = 1  4Bytes;
    float b= 1.23, C = 1.23e2, d  4Bytes;
    
    //float支持科学计数法
    long long 范围为-2^63 ~2^63-1 8Bytes;
    long long l = 100000000000000LL;
    //末尾LL表示是LL类型的整数
    
    long double 18~19位有效数字
}
2.1.2 Byte与bit

1Byte = 8bits

因此通常说的十兆带宽(10Mb)实际下载速度约为1MB/s

2.1.3 常见变量的IO方式

浮点数的IO

#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
    float a, b;
    scanf("%f %f", &a, &b);
    printf("a + b = %.1f \n a * b = %.2f", a + b, a * b);
    //可以预先确定保留几位小数
    double c, d;
    scanf("%f %f", &c, &d);
    printf("c + d = %lf \n c * d = %lf", c + d, c * d);
    //double类型的IO
    
    long long m ,n;
    scanf("%lld %lld", &m, &n);
    printf("m + n = %lld \n m * n = %lld", m + n, m * n);
    
    return 0;
 }

char的IO

#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
    float a, b;
    scanf("%c %c", &a, &b);
    //注意%c会读入空格的
    //但是cin不会读入空格
    printf("%c %c\n",a ,b );
    return 0;
 }

summary

常用类型

int%d
char%c
float%f
double%lf
long long%lld

2.2 常见运算

2.2.1 %取模

注意%的取模操作(只能是整数),即取相除之后的余数。这里余数与数学中定义不一样,余数的正负取决于被除数和除数的正负

2.2.2 整数的自增和自减
++a先增后取值
a++先取值后增

简写

b = b + a ---->b += a

b = b % a ---->b %= a

取模时的a不能为0

2.3 变量类型之间的转换

隐形转换:把低精度转换为高精度

强制转换:(类型)变量 就可以

2.4 ASCII常用表

字符十进制数字
换行10
空格32
048
A65
a97
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
    int t = 97;
    char c = (char)t;
    cout<< c <<endl;
    return 0;
 }

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
存储过程的语法讲解
在上一篇文章:别再说不知道什么是存储过程和存储函数了中简单的介绍了存储过程和存储函数以及其使用。其实存储过程是可以进行编程的,所以可以和其他的编程语言一样使用变量、表达式以及控制结构进行编程,从而实现一些复杂和有用的功能。
51 0
新手向,十分钟快速创建 Spring Cloud 项目
本文为新手向教程,帮助大家快速入门 Spring Cloud 开发,也作为「跟我学 Spring Cloud Alibaba」系列的补充文章
3008 0
Oracle存储过程迁移ODPS-03(专有云):ODPS1.0支持exists语法
专有云目前还有不少ODPS1.0版本,主要是应对V3之前的平台版本。这个版本的ODPS不支持exists语法,如何换种写法实现。
2689 0
快速了解什么是自然语言处理
快速了解什么是自然语言处理 摘要:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
1316 0
cacti快速安装
一、cacti概述 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
598 0
快速幂
1//整数的快速幂 m^n % k 的快速幂: long long quickpow(long long m , long long n , long long k){ long long ans = 1; ...
700 0
+关注
66
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载