C++学习难点1

2023-11-04

数据类型与表达式

1.运算符

1.1 自增自减运算符:

int i = 0, j;
j = i++;//后置,i的值自增变为1,表达式i++的值为i自增之前的值,即j得值为0
j = ++i;//前置,i的值自增变为1,表达式i++的值为i自增之后的值,即j得值为1

 注意,自增自减运算符的操作对象必须为左值。前置版本返回左值对象本身,后置版本将原始值的副本作为右值返回。能用前置版本就不用后置版本。

1.2 条件运算符:

条件运算符(?:)是唯一一个三目运算符,格式如下:

cond?expr1:expr2

运算过程:计算cond表达式的值,为真则运算expr1,并返回expr1的值;否则运算expr2,并返回expr2的值

2.类型转换

2.1 隐式类型转换:'a'+1,2U+5,int i=3.14

2.2 显示类型转换:

c++提供了四种强制类型转换方式:static_cast,dynamic_cast,const_cast,reinterpret_cast。

格式: cast-name<type> (expr)


早期C++中转换格式:type (expr),(type) expr

例如:double k=i / (double) j;      //将j强制转换为double类型

           double k=i / double (j);

3.常量修饰符

const修饰符,constexper

4.类型推导

4.1 类型别名:

第一种是使用关键字typedef,例如:typedef long long ll;

第二种是使用using关键字,例如:using price = double;

4.2 auto类型推导:

C++11中auto赋予了新的含义,编译器利用它可以根据初始值的类型自动推导出需要的数据类型。例如:

auto pi=3.14159, rad = 1.0;

auto area = pi*rad*rad;       //area为double类型

4.3 decltype关键字:只想用表达式类型而不想用表达式的值来定义对象。

语法格式:decltype (expr)

语句控制结构

1.do while 语句

语法格式:

do {
   statement;   //循环体语句
}while (expr);  //条件表达式,注意以分号结束

do while与while的区别:do while现实性旋幻体后计算表达式,所以不管表达式的值如何,do while语句至少执行一次循环体

2.跳转语句

break语句:只能用于switch语句或循环语句中,用来跳出离他最近的switch语句或终止循环的进行。

continue 语句:只在循环结构中起作用,用来终止当前操作,进入下一次循环,下一次循环是否被执行取决于循环条件是否成立。continue语句的作用域仅作用于离它最近的循环。

C风格字符串处理函数

strlen(s)        返回 s 的长度,不包含结束符'\0'
strcmp(s1,s2)    字符串比较函数。如果s1=s2返回0;s1>s2返回正值;s1<s2返回负值;
strcpy(s1,s2)    字符串复制函数。将字符串s2复制给s1,返回s1。
strcat(s1,s2)    字符串链接函数。将字符串s2附加到s1后,返回s1.

string类型

1.string对象的输入和输出:

cin>>s;时遇到空白字符(空格符,制表符和回车符)停止,如果想读取空白字符,则可以用getline函数。

 getline函数读取一整行的输入,知道遇到换行符为止(读入内容包括换行符),并把所有内容放到string对象(不包括换行符)里,例如:getline(cin, s);

2.string 对象的大小:s.size()=s.length()   //如果s为指针类型使用 - > 操作符

可用 s.empty() 测试一个string 对象是否为空

3.访问单个字符:下标运算符或者at函数,例如:s[1],s.at(1)  。s.front() 和 s.back() 访问第一个和最后一个字符

4.string 类对象使用C风格字符串处理函数,要通过string类成员函数 c_str 来获取string对象存储的字符串首地址。例如:

string str="hello"
char carr[10];
strcpy(carr, str.c_str());
string的成员函数c_str返回const char* 类型的指针,确保其指向的对象不被修改。

更新中······

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++学习难点1 的相关文章

随机推荐

  • docker介绍+docker安装

    三问 为什么要用docker docker优势在哪 docker基础操作 一 docker介绍 1 容器就是一种沙盒技术 集装箱子 把应用装起来 容器的本质 进程 容器镜像就是系统里的 exe 安装包 2 docker介绍 1 docker
  • neo4j--Cypher语法练习(WITH、 FOREACH、Aggregation、UNWIND、UNION、CALL)

    1 15 WITH WITH语句将分段的查询部分连接在一起 查询结果从一部分以管道形式传递给另外一部分作为开始点 使用WITH可以在将结果传递到后续查询之前对结果进行操作 操作可以是改变结果的形式或者数量 WITH的一个常见用法就是限制传递
  • [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

    在通过jdbc连接SQL Server经常回出现 Microsoft SQLServer 2000 Driver for JDBC Error establishing socket 原因如下 1 通过url连接的时候指定的服务器名称或者服
  • Python 计算机视觉(十二)—— OpenCV 进行图像分割

    参考的一些文章以及论文我都会给大家分享出来 链接就贴在原文 论文我上传到资源中去 大家可以免费下载学习 如果当天资源区找不到论文 那就等等 可能正在审核 审核完后就可以下载了 大家一起学习 一起进步 加油 目录 前言 1 图像分割 2 读取
  • C++题库

    文章目录 1 求最大值 2 求圆面积 3 编写重载函数来打印字符串 4 设计带构造函数的Dog类 5 定义一个带重载构造函数的日期类 6 C 第三章 指针 动态生成Person类的对象 7 编写一个小小的计算器 能够计算两个浮点数的加 减
  • 使用Myeclipse插件将wsdl生成java客户端代码

    使用环境 MyEclipse9 0 本教程使用Myeclipse内置插件生成java代码 网上说这是xfire插件 不管怎样 生成和调用客户端代码都十分简单 1 在项目上右键 选择New gt Other gt Web Service gt
  • Mysql常用命令行

    Mysql常用命令行 第一招 mysql服务的启动和停止 net stop mysql net start mysql 第二招 登陆mysql 语法如下 mysql u用户名 p用户密码 键入命令mysql uroot p 回车后提示你输入
  • 如何用python调用webservice接口

    最近项目需要去调用其他平台接口 接口类型为webservice接口 跟经常用的http请求还不一样 然后就找到python的suds三方包 以下为根据号码查询归属地接口进行测试和举例 安装suds三方包 命令行 pip3 install s
  • VSCode 的 Local History插件使用

    VSCode 的 Local History 插件使用 在使用vscode编写代码的时候 往往需要查看历史的修改记录 这时可以安装 Local History 插件 安装成功之后 关闭 vscode 然后重新启动就可使用 在左下角可以看到
  • linux 查找安装包路径,查看yum安装软件包的路径

    Linux系统下查找安装包所在目录的方法 linux中查看软件文件安装路径 Linux查看软件安装路径 linux查找安装包路径 rpm查找安装包路径 rpm rpm qa grep php fpm rpm ql php73 php fpm
  • python的struct模块

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 了解c语言的人 一定会知道struct结构体在c语言中的作用 它定义了一种结构 里面包含不同类型的数据 int char bool等等 方便对某一结构对象进行处理 而在网络
  • oshi - 服务器及应用监控库 - 简介与使用

    by Claudia 文章目录 简介 特性 相关资料 运行 具体使用 源码分析 SetCpuInfo SetMemInfo SetSysInfo SetJvmInfo SetSysFiles Why oshi 竞品分析 总结 简介 oshi
  • el-form表单中不同数据类型对应的时间格式化和校验规则

    1 在表单中 当选择不同的数据类型时 需要在下面选择时间时和数据类型对应上 通过监听数据类型的变化 给时间做格式化 2 但是当不按顺序选择数据类型后 再选时间可能会报错 所以需要在dom更新后 再清空表单 3 校验规则 结束时间需要大于开始
  • 2022-12-30 工作记录--React/JS-关闭一个弹窗后,根据需求判断是否继续弹出该弹窗

    React JS 关闭一个弹窗后 根据需求判断是否继续弹出该弹窗 一 实现效果 假如用户在 任务弹窗 同时完成了三个非签到任务 想要实现 当用户返回 首页 时 依次弹出对应完成的任务的 完成任务弹窗 如下图 二 实现代码 后端返的数据 接口
  • 模型集成(Model Ensemble)

    模型集成 Model Ensemble 模型集成是融合多个训练好的模型 基于某种方式实现测试数据的多模型融合 这样来使最终的结果能够 取长补短 融合各个模型的学习能力 提高最终模型的泛化能力 近年来 model ensemble已成刷榜神器
  • 计算机组成原理笔记01

    做题笔记1 学习内容 教材的思维导图 课后练习 计算部分 中国大学MOOC计算机组成原理 计算部分 1 教材的思维导图 2 课后练习P17 7 某计算机主频为1 2GHz 其指令分为4类 它们在基准程序中所占比例及CPI如表1 7所示 指令
  • Rancher应用商店的questions.yml接收数组参数

    背景 制作FlinkCluster的Chart包 要求应用商店界面输入接受数组参数 questions yml 是不支持这种形式的 解决方案 questions yml中的参数最终是以 set name value 的形式拼接到命令中的 h
  • m3u8 videojs 倍速播放属性

    var myVideo videojs myVideo bigPlayButton true textTrackDisplay false posterImage false errorDisplay false playbackRates
  • Elasticsearch-拼音分词/排序

    1 拼音分词器安装 1 1下载拼音分词插件 要和安装的es版本保持一致 我的版本是6 6 0 下载地址 https github com medcl elasticsearch analysis pinyin tree v6 4 0 1 2
  • C++学习难点1

    数据类型与表达式 1 运算符 1 1 自增自减运算符 int i 0 j j i 后置 i的值自增变为1 表达式i 的值为i自增之前的值 即j得值为0 j i 前置 i的值自增变为1 表达式i 的值为i自增之后的值 即j得值为1 注意 自增