C++介绍

语言的产生

C++ 由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的,由于C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言 ,所以最初命名为带类的C 。C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。C++ 也是目前嵌入式 ( 无人驾驶 ) 的首选语言。

c++的优缺点

优点:

  1. 实现了面向对象程序设计。在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由C++来编写的

  2. 功能强大,嵌入式首选。

  3. C++加上严格的codereview可以用来开除猪一样的队友,这是所有其他语言都不具备的功能

缺点:

  1. 学习门槛高、难学

  2. 知识点繁杂,有声音说,c++标准委员会仅仅是为炫技并不考虑实际的工业需求

    1. 修复以前的bug

    2. 增加新的技术

与Python的比较

程序有两种执行方式,解释执行和编译执行。 python是一种解释语言(弱类型 | 动态类型 ...),不需要经过编译,是一边解释一边执行,由于底层封装了很多库供程序员使用,所以开发起来方便快捷,且能够很好地跨平台,写一些小工具小程序特别合适。

c++ 则属于编译语言,是一种需要编译后(整个程序编译 )运行语言,编译后通过链接,整合其他依赖库,然后生成机器码(可执行文件),以后再运行,无需编译。在指定环境下编译运行,运行效率高 ,---> exe -> 很难查看源码 。 c++ 可以直接操作内存 指针 。

  • python打印
print('aaaa')
  • c++打印
#include <iostream>
// 两个斜杠代表单行注释 多行注释:/*注释内容*/
// include: 导入 相当于Python中的import
// int main(){} 主函数入口
int main() {
   // std:: count << "输出的内容" << std::endl;
std::cout << "aaa" << std::endl;
  // return: 函数返回值,main函数是C++程序的入口函数,C++标准要求main函数的返回值类型为int0 表示正常退出
return ;
}

注意: 所有的逻辑代码必须写在函数内部里面, 所有代码后面一般都要有分号;

C++常见的数据类型

  • int:整数类型
  • float:单精度浮点数
  • double:双精度浮点数
  • char:字符
  • string:字符串
  • bool:布尔

与其他静态类型语言一样,C++也具备大多数语言的数据类型。除上面给出的数据类型之外,其实还有 short | long | long long 等 。

变量

c++的变量命名规则和Python一样:

  1. 可以包含字母 、 数字 和下划线

  2. 必须以字母或者下划线开始

  3. 不能跟关键字同名

声明和初始化

c++ 是强类型语言,任何变量在使用前必须先声明,并且在声明的时候必须要指定该变量的数据类型,即该变量未来能够存储的数据类型。

int main(){

    //先声明
int age ;
double price; //后初始化
age = ;
price = 20.3; //声明及初始化
int age = ; return ;
}

常量

常量其实和变量没有多大区别, 有名字, 占据存储空间,可以是任何的基本类型,但只有一点不同,常量的值不允许变更。C++中的常量的声明需要使用 const 关键字,而python中的常量默认约定是全大写表示。

int main(){

    const double pi {3.1415926};
const int months_in_year{}; pi = 2.5 ; //将会出现编译错误 常量的值不允许改变 return ;
}

输入和输出

任何编程语言都要输入和输出,python的输入输出是inputprint , C语言的输入输出是 scanfprintf , 而C++的相对要复杂些,它使用 std::cinstd::cout 来操作输入输出 。 C++的输入输出,需要导入 iostream 库 。

#include <iostream>

int main (){
std::cout << "请输入您的年龄:"<<std::endl; int age ;
  // 把输入的值赋值给age
std::cin >> age;

  // 输入age
std::cout << "您的年龄是:" << age <<std::endl; return ;
}

判断

if语句

#include <iostream>

int main (){

    std::cout << "请输入1-6数字:" << std::endl;

    int num;
std::cin >> num; if( num> ){
std::cout << "输入错误" << std::endl;
}else if(num>){
std::cout << "大" << std::endl;
}else{
std::cout << "小" << std::endl;
} return ;
}

switch语句

许多语言中都包含switch,比如:java 、javascript 、php 等,而python是个例外,python没有switch。实际上switchif 语句块很相似, 它是完全的等价条件判断,但是一旦满足某个case的条件,那么其他case 就不会再进行判断,如果全部不满足case条件,就会执行default里面的代码。

#include <iostream>

int main (){
std::cout << "请输入此次考试的成绩评级" << std::endl;
char level ;
std::cin >> level;
switch (level){
case 'A':
std::cout << "优秀" << std::endl;
break;
case 'B':
std::cout << "良好" << std::endl;
break;
case 'C':
std::cout << "及格" << std::endl;
break;
case 'D':
std::cout << "仍需继续努力" << std::endl;
break;
default:
std::cout << "输入错误。" << std::endl;
break;
}
return ;
}

循环

while

#include <iostream>
int main (){ int count = ;
while(count < ){
std::cout << "红灯还在亮着..." << std::endl;
cout++;
}
return ;
}

do - while

#include <iostream>
int main (){ int count = ;
do{
std::cout << "红灯还在亮着..." << std::endl;
cout++;
}while(cout < ); return ;
}

while 和 do - while 的区别: 前者属于先判断后执行,后者属于先执行后判断

for

#include <iostream>
int main (){
for(int cout = ; cout < ; cout ++){
std::cout << "红灯还在亮着..." << std::endl;
}
return ;
}

continue 和 break和在Python中的作用一样,contince属于跳过此次循环继续下一次循环,break结束break所在的这层循环

c++ 第一天 变量、判断、循环的更多相关文章

  1. SQLserver中的常量与变量、判断循环语句

    数据库中的变量与常量 数据库中定义变量 [起临时存储数据的作用] ---数据库中定义变量(运行时要从头到尾进行运行,从定义变量开始到赋值) --前面必须加 declare --定义变量 :    de ...

  2. 理解C#系列 / 核心C# / 判断&循环&跳转

    判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...

  3. 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路

    Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...

  4. php变量判断为空的几种方法

    1.isset  主要用来判断变量是否被初始化过 注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 2.empty  可以将值为 " ...

  5. shell if判断(曾经被一个字符串相等的判断纠结半小时,最后只是if后少了个空格!) 和 awk引用外部变量判断

    一.if判断 数字: $A=12 $B=15 if(("$A"<"$B")) if(("$A"=="$B")) 字 ...

  6. 有趣的bug——Java静态变量的循环依赖

    背景 是的,标题没有错误,不是Spring Bean的循环依赖,而是静态变量之间的循环依赖. 近期的项目均是简单的Maven项目,通过K8S部署在阿里云上,其配置文件读取规则如下所示: (1) 优先读 ...

  7. 第一篇、javascript变量和循环

    一.代码存放位置 理论上放在body和head中都可以,但是推荐放在body代码块底部,因为Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在bo ...

  8. Java 变量、循环、判断

    粗糙笔记不喜勿喷 Java 8大基本类型 第一类:逻辑型(boolean) 1.boolean类型只存在true(真),false(假)两种形式 例: boolean a=true; boolean ...

  9. python基础一(安装、变量、循环、git)

    一.开发语言分类 系统的开发语言有java.c++.c#.python.ruby.php等等,开发语言可分为编译型语言和解释型语言. 编译型语言就是写好代码之后就把代码编译成二进制文件,运行的时候运行 ...

随机推荐

  1. lambda表达式与函数式(FunctionalInterface)接口

    一.lambda表达式 lambda表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).使用它可以写出更简洁.更 灵活的代码. ...

  2. (二)LVS介绍

    LVS分3种模式  (a)NAT(网络地址映射):通过网络地址转换的方法来实现调度       优点:支持所有操作系统及私有网络,且只需一个公网 IP 地址       缺点:用户请求和响应报文都必须 ...

  3. 读CSAPP第一章的收获

    这个系列只写了CSAPP第三版对于我的收获. 里面的内容很多,我只写我以前不知道的,然后现在又觉得挺有用的内容. 没有很好的排版,将就看. Amadhl定律:主要观点,想要显著加速整个系统,必须提升全 ...

  4. 结合实际需求,在webapi内利用WebSocket建立单向的消息推送平台,让A页面和服务端建立WebSocket连接,让其他页面可以及时给A页面推送消息

    1.需求示意图 2.需求描述 原本是为了给做unity3d客户端开发的同事提供不定时的消息推送,比如商城购买道具后服务端将道具信息推送给客户端. 本篇文章简化理解,用“相关部门开展活动,向全市人民征集 ...

  5. 简单的MVC框架

    效果图: 源码下载:https://github.com/doyoulaikeme/DotNetSample/tree/master/DotNetSample4/easyMVCFramework

  6. mysql无法启动服务,错误1067

    安装mysql,提示安装成功后,启动服务,提示错误1067 前情提示:mysql安装文件和配置文件没有放在Program File文件夹下. 解决办法:将my.ini文件剪切放在Program Fil ...

  7. WPF中国地图

    实现鼠标移动到某个地区显示Popup弹框 1,地图 <Grid Margin="0,0,0,0" Grid.Row="1"> <Path St ...

  8. 主题博客添加 h5 贴边音乐插件

    前言: 前几日,在逛微博的时候,发现微博主页的左下角有一个贴边的音乐小插件,我顿时就想在自己博客上也弄一个玩玩.当时就想把微博那个移植过来,首先我用谷歌浏览器F12 查看页面源码,和检查元素代码,发现 ...

  9. 分布式任务调度平台XXL-JOB快速搭建教程

    1. XXL-JOB简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.它的有两个核心模块,一个模块叫做 ...

  10. 模板方法模式(c++实现)

    外观模式 目录 外观模式 模式定义 模式动机 UML类图 源码实现 优点 缺点 模式定义 模板方法模式(Facade),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变 ...