C++学习(1)基础知识点整理 18-54

语法的使用:                  注意事项:                  大块的语法用块标注,注意事项标题会用红色标注

目录

基础

常量

运算

        算数运算

        关系运算

        逻辑运算

        逗号运算

        运算优先级

条件分支 

18 if 语句的基本结构

19 嵌套使用 if 语句

21 多条件的 if 语句

23 三目运算符

24 switch 语句

循环语句

25、while循环语句

26、循环的跳转

27、for循环语句

29、do…while循环语句

函数基础 

31、函数的声明和定义

32、函数的调用

33、变量的作用域

        1)全局变量

        2)局部变量

        3)静态局部变量

34、函数参数的传递

35、函数分文件编写

C++数据类型

38、sizeof运算符

42、浮点型(实数型)

43、字符型的基本概念

44、转义字符

45、C++11的原始字面量

46、字符串型

47、布尔型

48、数据类型的转换

指针和内存 

50、指针的基本概念

51、使用指针

52、指针用于函数的参数

53、用const修饰指针

        1)常量指针(最常用)

        2)指针常量

        3)常指针常量

54、void关键字

        1)函数的返回值用void,表示函数没有返回值。

        2)函数的参数填void,表示函数不需要参数(或者让参数列表空着)。

        3)形参用void *,表示接受任意数据类型的指针。


基础

在文件最开始包含头文件;一个程序只能有一个主函数;可以用<<输出符号对于输出的内容进行拼接;单行注释//  多行注释/*   */ ;参数的命名由字母数字下划线组成,提倡见名知意;变量的使用前需要先声明:数据类型 变量名

常量

        1 宏常量需要在main函数前面导入,通常用大写表示:#define 常量名 值 

        宏常量最后没有符号

        2 const修饰的常量:const 数据类型 常量名 = 值

运算
        算数运算

        / 除法:两个整数进行除法,舍弃小数部分,只得到整数,整数浮点数运算结果为浮点数

        %取余:两个整数相除取余数

        关系运算

        两个表达式比较,输出结果为1-true 或者 0-false

        字符型也可以用于关系判断,常用的有== 和 !=

        逻辑运算

        &&与  ||或  !非  逻辑运算两边既可以是表达式也可以是数值

        逗号运算

        把一行语句的多个表达式连接在一起,程序从左向右执行,常用语声明多个变量

        例:int a = 1, b =2;

        运算优先级

        不用特别记忆优先级关系,按照想法的顺序加括号。

条件分支 

18 if 语句的基本结构

if (表达式)

{

        //表达式为真执行的语句

}

else

{

        //表达式为假执行的语句

}

分支内只有一行的时候{}可以不写,如果一行也没有就得写{}

19 嵌套使用 if 语句

        if 语句可以嵌套使用,嵌套使用 if 语句的时候,else 总是与前面最近的 if 配对

21 多条件的 if 语句

if (表达式一)

{

    // 表达式一为真时执行的语句。

}

else if (表达式二)

{

    // 表达式二为真时执行的语句。

}

else if (表达式三)

{

    // 表达式三为真时执行的语句。

}

……

else if (表达式n)

{

    // 表达式n为真时执行的语句。

}

else

{

    // 全部表达式都不为真时执行的语句。

}

23 三目运算符

        语法: 表达式一 ? 表达式二 : 表达式三

        其实是简单 if 语句的简化。先计算表达式一的值,如果为真,整个表达式的结果为表达式二的值,如果为假,整个表达式的结果为表达式三的值。表达式二后面是英文冒号,表达式一通常需要用括号圈起来,防止系统优先级判断出错。

24 switch 语句

switch (表达式)

{

    case 值一:

       语句一;

       break;

    case 值二:

       语句二;

       break;

    ......

    case 值n:

       语句n;

       break;

    default:

       //上述条件都不满足时执行的语句;

}

        case后面必须是整数和字符,每个分支不要漏写break;语句。

循环语句

25、while循环语句

while (表达式)

{

    语句块

}

26、循环的跳转

        break和continue两个关键字用于控制循环体中代码的执行流程。

                break跳出(中止)当前循环语句。

                continue回到当前循环语句的首部,不再执行后面的语句。

27、for循环语句

for (语句一 ; 表达式 ; 语句二)

{

    语句块

}

        在函数或语句块内部的语句使用,在函数或语句块外部是不可用的。局部变量在函数返回或语句块结束时由系统收回内存空间。

29、do…while循环语句

do

{

    语句块

} while (表达式);

        (表达式)后面还有一个分号。

函数基础 

31、函数的声明和定义

        函数的定义:函数的实现过程。

返回值的数据类型 函数名(参数一的数据类型 参数一, 参数二的数据类型 参数二,……)

{

    实现函数功能的代码。

    return 返回值;

}

        函数的声明:让编译器知道函数的存在,包括返回值的数据类型、函数名和参数列表

返回值的数据类型 函数名(参数一的数据类型 参数一, 参数二的数据类型 参数二,……)

         如果函数的声明和定义分开书写,函数的声明后面一定要有分号,函数的定义后面一定不能写分号。函数的声明和定义如果分开,一般在main函数的上面声明,在main函数的下面定义。

32、函数的调用

        直接使用之前定义的函数名称,括号里面输入实参,参数要跟定义的参数类型逐个对应。

语法:函数名(参数一,参数二,……)

33、变量的作用域
        1)全局变量

        在所有函数外面定义的变量是全局变量。

        在定义位置之后的任意函数中都能访问。全局变量在主程序退出时由系统收回内存空间。

        2)局部变量

        在函数和语句块内部定义的变量是局部变量,{}括起来的就是一个语句块。

        在函数或语句块内部的语句使用,在函数或语句块外部是不可用的。局部变量在函数返回或语句块结束时由系统收回内存空间。

        3)静态局部变量

        函数内部用static修饰的是静态局部变量。

        用static修饰的局部变量生命周期和程序相同,并且只会被初始化一次。static修饰的变量在程序执行中只会执行一次,当程序想要使用全局变量的时候应该先考虑使用static(考虑到数据安全性)。

         for循环初始化语句中定义的变量的作用域是for语句块。语句块外面就不能使用了,如果想要继续使用需要在for语句块外面定义。

34、函数参数的传递

        调用函数的时候,调用者把数值赋给了函数的参数。

        实参:调用时程序函数名括号中的参数,可以是常量、变量和表达式。

        形参:函数在定义的时候,括号里面的参数。

        值传递:

                在函数定义的代码中,修改形参的值,会不会影响实参。

                函数调用时,先声明形参变量类型,之后将实参传递给形参,执行函数体的代码。

35、函数分文件编写

        导入系统所生成的库使用<>,导入自创的库使用” ”

        头文件(*.h):需要包含的头文件,声明全局变量,函数的声明,数据结构和类的声明等。

        源文件(*.cpp):函数的定义、类的定义。在每个源文件都需要导入对应头文件。

        主程序:main函数,程序的核心流程,需要用#include "头文件名"把头文件包含进来。

C++数据类型

38、sizeof运算符

        sizeof运算符用于求数据类型或变量占用的内存空间。

        用于数据类型:sizeof(数据类型)

        用于变量:sizeof(变量名) 或 sizeof 变量名

        字符串(string)不是C++的基本数据类型,用sizeof求它占用内存的大小没有意义。

42、浮点型(实数型)

        C++缺省显示6位有效数字,如果要显示更多的有效数字,可以用printf()函数。

        在实际开发中,用整数代替浮点数,整数的运算更快,精度更高。

43、字符型的基本概念(ASCII码)

        字符型(char)占用的内存空间是1个字节,字符的本质是整数,书写用单引号包含,也可以用整数。

        在内存中,不存放字符本身,而是存放与它对应的编码,即ASCII码。字符的本质是整数,取值范围是0~127。

        32是空格

        48~57是0到9十个阿拉伯数字

        65~90是26个大写英文字母

        97~122是26个小写英文字母

44、转义字符

        \0          空,给字符型变量赋值时可以直接书写0。

        \n          换行(LF) ,将当前位置移到下一行开头。

        \t          回车(CR) ,将当前位置移到本行开头

        \r          水平制表(HT) (跳到下一个TAB位置)

45、C++11的原始字面量

        原始字面量(值)可以直接表示字符串的实际含义,不需要转义和连接。

        语法:R"(字符串的内容)"

46、字符串型

        C++风格字符串:string 变量名="字符串的内容" ;

        C风格字符串:char 变量名[]="字符串的内容" ;

47、布尔型

        bool类型本质上是1字节的整数(unsigned char),取值只有1和0。对bool型变量赋非0的值,将转换成1。

48、数据类型的转换

        (目标类型)表达式 或 目标类型(表达式)

指针和内存 

50、指针的基本概念

        C++用运算符&获取变量在内存中的起始地址。

        语法:&变量名

        指针,它是一种特殊的变量,专用于存放变量在内存中的起始地址。

        语法:数据类型*  变量名;

        指针变量名跟原变量名不要相同(指针变量也是变量,不能出现重复)

        将标黄的二者写到一起记为指针的数据类型,在函数中解引用方便理解

        给指针赋值,对指针的赋值操作也通俗的被称为“指向某变量”

        语法:指针=&变量名;

        在64位的操作系统中,不管是什么类型的指针,占用的内存都是8字节。

51、使用指针

        指针存放变量地址,所以指针跟对变量取地址的值相同。

        *运算符被称为间接值或解除引用(解引用)运算符,将它用于指针,可以得到该地址的内存中存储的值。可以将指针和值理解为硬币的两面。

        数据在存储时要注意3个属性:存放位置,数据类型,值

52、指针用于函数的参数

        如果把函数的形参声明为指针,调用的时候把实参的地址传进去,形参中存放的是实参的地址,在函数中通过解引用的方法直接操作内存中的数据,可以修改实数的值,这种方法被通俗的称为地址传递或传地址。

       值传递:函数的形参是普通变量。

        传地址的意义如下:

        可以在函数中修改实参的值。

        减少内存拷贝,提升性能。

53、用const修饰指针
        1)常量指针(最常用)

        语法:const 数据类型 *变量名;

        不能通过解引用的方法修改内存地址中的值(用原始的变量名是可以修改的)。

        2)指针常量

        语法:数据类型 * const 变量名;

        指向的变量(对象)不可改变。

        3)常指针常量

        语法:const 数据类型 * const 变量名;

        指向的变量(对象)不可改变,不能通过解引用的方法修改内存地址中的值。

        记忆秘诀:*表示指针,指针在前先读指针;指针在前指针就不允许改变。

        常量指针:const 数据类型 *变量名

        指针常量:数据类型 * const 变量名

54、void关键字

        在C++中,void表示为无类型,主要有三个用途:

        1)函数的返回值用void,表示函数没有返回值。

void func(int a,int b)

{

    // 函数体代码。

    return;

}

        2)函数的参数填void,表示函数不需要参数(或者让参数列表空着)。

int func(void)

{

    // 函数体代码。

    return 0;

}

        3)形参用void *,表示接受任意数据类型的指针。

        不能用void声明变量,它不能代表一个真实的变量,但是,用void *可以。

        不能对void *指针直接解引用(需要转换成其它类型的指针)。

        把其它类型的指针赋值给void*指针不需要转换。

         把void *指针赋值给把其它类型的指针需要转换。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 对于学习 qt 知识点整理思维导图非常有帮助。首先,思维导图可以帮助我们梳理 qt 的知识结构,帮助我们建立起一个清晰的知识体系。我们可以将 qt 的主要知识点作为中心思维节点,在周围分支出各个具体的知识点,形成一个完整的思维导图。这样,我们可以清楚地看到每个知识点之间的关系和联系,更好地理解 qt 的整体架构和工作原理。 其次,思维导图可以帮助我们更好地记忆和复习 qt 的知识点。通过在思维导图中加入关键词、示意图和简单的说明,我们可以将 qt 的知识点以一种直观的方式呈现出来。这样,在复习的时候,我们可以随时查看思维导图,回忆起相关的知识点,加深记忆。同时,思维导图可以帮助我们发现知识点之间的遗漏或者薄弱之处,有助于我们有针对性地进行重点复习。 最后,思维导图还可以帮助我们提高问题解决能力。在学习 qt 的过程中,我们遇到问题时可以将问题写在思维导图中,并找到与之相关的知识点。通过思考和整理,我们可以更深入地理解问题的本质和解决方法,提高自己的问题解决能力。 综上所述,使用思维导图学习 qt 知识点非常有效。它可以帮助我们梳理知识结构、加深记忆、提高问题解决能力,是我们学习 qt 不可或缺的工具之一。 ### 回答2: Qt是一个跨平台的C++应用程序开发框架,广泛应用于图形界面应用程序的开发。学习Qt时,整理思维导图是一种很好的学习方法。 首先,在思维导图中,我会列出Qt的基本概念和核心模块,包括信号和槽机制、窗口和控件、布局管理、事件处理等。了解这些基本概念可以帮助我建立起对Qt框架的整体认识。 接下来,我会将Qt框架中常用的模块和类进行分组,如图形界面相关的模块(如QWidgets、QPainter、QPixmap等),文件操作相关的模块(如QFile、QDir等),网络通信相关的模块(如QTcpSocket、QUdpSocket等),数据库操作相关的模块(如QSqlDatabase、QSqlQuery等)等。这样做可以让我更清晰地了解Qt框架中各个部分的功能和作用。 在每个模块中,我会进一步细分各个类的功能和使用方法,并在思维导图中进行标注。比如,对于QWidgets模块,我可以列举出常用的窗口类(如QMainWindow、QDialog等)和控件类(如QPushButton、QLineEdit等),并在其旁边注明它们的作用和常用的函数。 此外,在思维导图中,我还可以加入一些示例代码和链接,以加深对Qt知识点的理解和掌握。这样一来,我在学习Qt的过程中,可以通过查阅思维导图来对各个知识点进行回顾和巩固。 总的来说,用思维导图整理Qt知识点可以使我更加系统地学习和掌握Qt框架。将各个知识点有机地结合在一起,形成一个完整的思维导图,有助于我在实际应用开发中更加灵活和高效地运用Qt技术。 ### 回答3: QT是一种跨平台应用程序开发工具,它具有丰富的库和组件,可以帮助开发者快速创建图形用户界面和实现功能丰富的应用程序。学习QT时,可以使用思维导图进行知识点整理,以帮助我们更好地理解和记忆内容。 首先,在思维导图的中心,可以写上"QT"这个关键词,作为整个思维导图的核心。然后,可以根据QT的主要功能和特点,将知识点分为以下几个方面进行整理: 1. QT基础知识:首先要了解QT的基本概念和架构,比如QT的版本、主要组件等。可以列出QT的基本特点,如跨平台性、开源性等。 2. QT的常用类和模块:在思维导图的下方,可以列出QT的常用类和模块,包括QWidget、QLayout、QLabel、QPushButton等,以及常用的模块如图形、网络、数据库等。可以进一步展开每个类和模块,记录它们的特点和示例用法。 3. QT的信号与槽机制:QT的信号与槽机制是其重要的特性之一,可以通过思维导图来详细介绍这个机制的原理和使用方法。可以展示信号和槽的连接方式、参数的传递等。 4. QT的图形用户界面设计:QT提供了丰富的图形用户界面设计工具,如Qt Designer,可以在思维导图中列出图形用户界面设计的基本步骤和注意事项,比如窗口布局、控件的选择和使用等。 5. QT的常用功能和技巧:在思维导图的边缘,可以列出一些常用的QT功能和技巧,如界面国际化、线程处理、文件操作等。可以进一步展开每个功能和技巧,记录其实现方法和使用场景。 通过思维导图的整理学习,可以清晰地掌握QT的核心知识点,有助于开发者更好地理解和运用QT进行应用程序开发。同时,思维导图也可以帮助我们进行知识的巩固和复习,提高学习效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值