热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++复习day3:分支语句与函数(依据C++premierplus)

发散复习了C++premierplus的六、七章节部分并予以记录。六:分支语句和逻辑运算符,且粗略复习文件的输入输出七:函数 第六章:分支语句和逻辑运算符 一.分支语句1.if语句

发散复习了C++ premier plus的六、七章节部分并予以记录。 六:分支语句和逻辑运算符,且粗略复习文件的输入/输出 七:函数  
第六章:分支语句和逻辑运算符  
一.分支语句
1.if语句
(1)分为if单独/if、else成对/if、else if、else形式,且由{}引起语句块
(2)可以使用如3==myNumber的方式防止关系运算符误写为赋值符号
2.逻辑表达式
(1)||逻辑OR(或)、&&逻辑AND(且、与)、!逻辑NOT(非)
(2)在头文件中引入即可用and、or、not来表示逻辑表达式
(3)c++在知道逻辑表达式结果后会立刻返回结果,如&&表达式若是式1为false则式2得不到执行
3.字符函数库cctype(在头文件中定义)
 isalnum() 如果参数是字母数字,即字母或数字,该函数返回true
 isalpha() 如果参数是字母,该函数返回true
 isblank() 如果参数是空格或水平制表符,该函数返回true
 iscntrl() 如果参数是控制字符,该函数返回true
 isdigit() 如果参数是数字(0~9),该函数返回true
 isgraph() 如果参数是除空格之外的打印字符,该函数返回true
 islower() 如果参数是小写字母,该函数返回true
 isprint() 如果参数是打印字符(包括空格),该函数返回true
 ispunct() 如果参数是标点符号,该函数返回true
 isspace()
如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符或者垂直制表符,该函数返回true
 isupper() 如果参数是大写字母,该函数返回true
 isxdigit() 如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true
 tolower() 如果参数是大写字符,则返回其小写,否则返回该参数
 toupper() 如果参数是小写字母,则返回其大写,否则返回该参数
 tolower()/toupper() 大写转为小写/小写转为大写
 isupper()/islower() 判断是否为大写/判断是否为小写,若是返回true,否则返回该参数
4.?:运算符
(1)形如expression1 ? expression2 :expression3<其中1为关系表达式,2、3则是算术表达式>式一通过则选取2,否则则是3
5.switch语句
(1)当选取条件为枚举值而判别条件为int是,会自动将枚举值提升后进行比对。
(2)c++的分支语句不能处理范围问题
《C++复习day3:分支语句与函数(依据C++premier plus)》
6.break离开循环体,continue离开本次循环并判断进入下一次循环
7.读入数字的循环:
(1)while(i>fish[i])语句中cin>>fish数组如果失败会返回false就退出循环,起到了控制输入的效果。
(2)失败的流输入会导致流关闭,如果这并非程序最后一次使用流的话需要进行清理
if(!cin)cin.clear();
(3)循环读入的错误处理代码:清理打开流并循环将上次输入的全部清理掉。
while(!(cin>>fish[i])){
    cin.clear();
    while(cin.get()!=&#8217;\n&#8217;){
        continue;
    }
    cout<<&#8220;plz print a number&#8221;;
}   二.简单文件的输入输出 1.cin的部分特性: (1)当目标为int/char/doublue时,cin会读入直到第一个非数字/第一个字符/第一个非浮点数元素 (2)使用cin.getline(word,50)其中word为char[50],此时会尝试读入直到第一个换行符   2.文件输出(即写入到文本文件): (1)包含头文件——>声明流ofstream fout——>关联流与文件fout.open(filename);<这个filename可以是任意类型字符串> ——>进行文件流输出fout<关闭文件流fout.close(); (2)默认文件输出流将新建不存在的文件与清空已存在的文件,当文件不允许访问时可能会出错。   3.文件读入(即从文件读取): (1)包含头文件——>声明流ifstream fin——>关联流与文件fin.open(filename);<这个filename可以是任意类型字符串> ——>进行文件流输出fin>>doublevalue;/fin.getline(chararray,50);——>关闭文件流fout.close(); (2) 特性和cin一样 (3)检查打开情况: if(!fin.is_open()){     exit(EXIT_FAILURE); } (4)检查连接状态良好且未结束——>判断读取结束的原因 fin>>target; while(fin.good()){fin>>target;} if(fin.eof()){cout<<&#8220;eof is reached!\n&#8221;;} else if(fin.fail()){cout<<&#8220;Input terminated by data dismatch.\n&#8221;;} else{cout<<&#8220;unkown error.\n&#8221;;} (5)fin.good()结果等同于fin>>target本身,所以可对读入精简为 while(fin>>target){;}  
第七章 函数   一.基础知识 1.函数原型(即提前声明,被称为静态类型检查)、函数定义、函数调用。 2.调用处参数称实参,定义处为形参(参量),引用型变量如对象、数组等传地址(通过传指针传递)能保留函数内部对其成员的操作,一般类型变量传值只是在副本上操作。
补充:数组有恒等式arr[i]==*(arr+i)/&arr[i]=arr+i 3.无法在方法中通过sizeof判断数组长度,因为数组形参被判断为指针,而sizeof仅返回指针本身内容的长度 4.可在形参中标注数组为const将之变为函数内只读,实质上将指针转换为常量指针,不允许使用其修改目标地址内容 5.可以采用数组头尾指针传入的方式替代传输数组长度的的方式。 6.禁止将常量地址赋予非常量指针,但允许把常变量赋予非常形参 (多级嵌套指针问题考虑是否违背常量不可修改的原则进行违规判断即可)
《C++复习day3:分支语句与函数(依据C++premier plus)》   二.函数与二维数组 如图两种形参构造方式。总之就是单独传入行数,列数随指针传入(不能省略)
《C++复习day3:分支语句与函数(依据C++premier plus)》   三.函数与c-风格字符串 (1)c-风格字符串指针在非指向空字符串时判定为true
《C++复习day3:分支语句与函数(依据C++premier plus)》
注释:上面警告是由于&#8221;&#8221;中内容被视为不变字符串const char[],所以被赋予一般指针时要求强转   四.函数和结构(struct) 1.结构默认的形参产生方式也是复制值 2.结构也可以使用实参加&而形参使用指针的方式调用函数   五.函数与string对象 1.需要多个字符串时可以声明string数组
《C++复习day3:分支语句与函数(依据C++premier plus)》   六.函数与array对象 1.c++中对象的函数传递形式类似结构,默认传的也是副本。注意指针用&#8217;->&#8217;而对象名用&#8217;.&#8217;
《C++复习day3:分支语句与函数(依据C++premier plus)》   七.递归

  1. 基线条件(针对最小问题) :满足该条件时函数直接返回一个值
  2. 递归条件: 包含一个或多个调用,旨在解决问题的一部分

《C++复习day3:分支语句与函数(依据C++premier plus)》     八.引用的形参 通过形参声明引用&实现将默认传值更换为传本体地址的引用<相当于佳假名、标签>
《C++复习day3:分支语句与函数(依据C++premier plus)》   九.函数指针 1.函数的地址是存储其机器语言代码的内存的开始地址,相关环节:  (1)获取函数地址:使用不包含参数列表的函数名即可  (2)声明函数指针:double (*pf) (int);即:返回值类型 (*指向函数的指针名)(其函数参数列表类型)  (3)对函数指针赋值:pf=ned;  (4)使用指针来调用函数:pf(x)或(*pf)(x)  (5)使用c++11的自动类型推断功能能简化函数指针的定义,但自动类型推断只能用于单值初始化,不允许用于初始化列表。  (6)函数指针的数组形式为const double * (*pa[3])(const double*,int)={f1,f2,f3};  (7)使用typedef可以简化相关声明减少输入量和错误。


推荐阅读
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 本文介绍了最长上升子序列问题的一个变种解法,通过记录拐点的位置,将问题拆分为左右两个LIS问题。详细讲解了算法的实现过程,并给出了相应的代码。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
author-avatar
CHEN--MIN--珊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有