个人技术分享

嵌入式Qt开发C++基础编程

文章目录

  • 嵌入式Qt开发C++基础编程
    • 1、初识C++
    • 2、数据类型、运算符和表达式
        • 数据类型
        • 运算符
        • 表达式
    • 3、控制结构
      • 1. 条件语句
        • if-else
        • switch
      • 2. 循环语句
        • for
        • while
        • do-while
      • 3. 跳转语句
        • break
        • continue
        • goto(不推荐使用)

1、初识C++

c++标准输出 cout ,endl 换行。

#include "iostream"
using namespace std;

/*
 * 主函数:程序的入口点
 * 参数:无
 * 返回值:int类型,表示程序的退出状态
 */
int main()
{
    // 输出"c++"到标准输出流
    cout<<"c++"<<endl;

    // 程序正常退出,返回0
    return 0;
}

2、数据类型、运算符和表达式

C++ 是一种强类型的编程语言,它支持多种数据类型、运算符和表达式。下面是对这些主题的简要概述:

数据类型

C++ 中的数据类型可以分为几大类:

  1. 基本数据类型
  • 整数类型:int, short, long, long long(以及它们的无符号版本,如 unsigned int
  • 浮点数类型:float, double, long double
  • 字符类型:char(可以是有符号的或无符号的,具体取决于编译器)
  • 宽字符类型:wchar_t(用于存储宽字符,如 Unicode 字符)
  • 布尔类型:bool(只能取 truefalse
  1. 复合数据类型
  • 数组:存储相同类型元素的固定大小序列。
  • 结构体(struct):允许你将多个不同类型的变量组合成一个单一的类型。
  • 联合体(union):一种特殊的数据结构,允许你在相同的内存位置存储不同的数据类型。
  • 类(class):面向对象编程的基础,用于创建自定义的数据类型。
  • 枚举(enum):一种用户定义的数据类型,它包含一组命名的整数值。
  1. 指针类型:指针是一个变量,其值为另一个变量的地址。所有指针类型的通用形式是 type*,其中 type 是指针所指向的变量的数据类型。
  2. 引用类型:引用是变量的别名,它允许你使用不同的名称来访问同一个变量。引用必须在声明时初始化,并且之后不能重新绑定到另一个变量。
  3. 空类型void 表示无类型。它经常用于不返回任何值的函数或指向任意类型的指针。
运算符

C++ 中的运算符用于执行各种操作,如算术运算、比较、逻辑运算、位运算等。以下是一些主要的运算符类别:

  1. 算术运算符+, -, *, /, %(取模)
  2. 关系运算符==, !=, >, <, >=, <=
  3. 逻辑运算符&&(逻辑与)、||(逻辑或)、!(逻辑非)
  4. 位运算符&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)
  5. 赋值运算符=(简单赋值)、+=-=*=/= 等(复合赋值)
  6. 条件运算符(三元运算符):? :
  7. 指针和引用运算符&(取地址)、*(解引用)
  8. 范围解析运算符(作用域解析运算符):::
  9. 成员访问运算符.(成员访问)、->(通过指针访问成员)
  10. 递增和递减运算符++(递增)、--(递减)
  11. 类型转换运算符static_cast, dynamic_cast, const_cast, reinterpret_cast(这些是 C++ 特有的类型转换运算符)
表达式

表达式是由运算符和操作数组成的语句,用于计算一个值。例如,x + y 是一个表达式,其中 + 是运算符,xy 是操作数。表达式的结果取决于其组成部分的类型和值,以及所使用的运算符。

在 C++ 中,表达式的计算遵循特定的优先级和结合性规则。例如,乘法和除法的优先级高于加法和减法,而括号可以用来改变默认的优先级。此外,赋值运算符的结合性是从右到左的,这意味着在链式赋值表达式中(如 a = b = c),右侧的赋值会首先执行。

cin 标准输入

#include "iostream"

using namespace std;

int main()
{
    string name;
    int age;
    float high;

    cout << "请输入您的姓名:";
    cin >> name;
    cout << "请输入您的身高:";
    cin >> high;
    cout << "请输入您的年龄:";
    cin >> age;

    cout << "---------" << endl;
    cout << "信息输入完成,您的信息如下:" << endl;
    cout << "姓名:" << name << endl;
    cout << "身高:" << high <<endl;
    cout << "年龄:" << age << endl;
}

字面常量

#include "iostream"

using namespace std;

int main()
{
    //整型
    //21;
    //实型(小数)
   // 173.3;
    //字符型
    //'a';
    //字符串型
    //"hello!";
    cout << 21 << endl;
    cout << 173.3 << endl;
    cout << 'a' << endl;
    cout << "hello!" << endl;


    return  0;
}

变量的基本类型

#include "iostream"
#include "windows.h"

using namespace std;

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    int age = 21 , lav = 56;  //整型
    float hi = 180.5;  		//实型
    char fu_1 = ',';  //字符型
    char fu_2 = '.';  //字符串型
    string name = "李华";

    cout << "我是" << name << fu_1 << "今年" << age << "岁" << fu_2 <<endl;
    cout << "身高" << hi << "cm" << "体重" << lav << "KG" << endl;

    return 0;
}

比较运算符和字符串的比较运算

#include "iostream"
#include "cstring"

using namespace std;

int main()
{
    int num1 = 3, num2 = 5;
    bool r1 = num1 == num2; //假为0 ; 真为1
    cout << r1 << endl;

    //C语言型字符串char *str = “hello” char arr[] = “hello”
    char *str = "hello";
    char arr[] = "hello";
    // 两者都为C语言型字符串时,不能用比较运算符  只有一个为C++类型才可以
    // 0表示相等 -1 str  < arr 1:str > arr;
    cout << strcmp(str,arr) << endl;

    //C++类型字符串

    string str1 = "hello";

    cout << (str == str1) << endl;

    return 0;
}

三元运算符


// 主函数:根据两次输入的成绩判断是否购买糖果。
//
// 无参数输入。
// 无返回值。
//

#include "iostream"

using namespace std;

int main()
{
    // 定义变量以存储两次成绩
    int grade , grade1;

    // 输入第一次成绩
    cout << "输入第一次成绩:";
    cin >> grade;

    // 输入第二次成绩
    cout << "请输入第二次成绩:";
    cin >> grade1;

    // 根据两次成绩的比较结果,决定是否购买糖果
    string result = grade > grade1 ? "不买糖" : "买糖";

    // 输出决定结果
    cout << result << endl;

    return 0;
}

字符串的拼接 使用运算符更新

#include "iostream"
using namespace std;
//输入一个字符串,输出字符串的拼接
int main(){
    string arr = "123456789";
    string arr2 = "abcdefgh";
    int arr1 = 15;
    string arr3 = arr + arr2 + to_string(arr1);
    cout << arr3 << endl;
    return 0;
}

3、控制结构

C++的控制结构用于控制程序的执行流程,包括条件语句、循环语句和跳转语句。以下是这些控制结构的详细用法:

1. 条件语句

if-else
  • 基本语法
if (condition) {
    // 如果条件为真,执行这里的代码块
} else {
    // 如果条件为假,执行这里的代码块
}
  • 实例
#include <iostream>
int main() {
    int num = 5;
    if (num > 0) {
        std::cout << "Number is positive." << std::endl;
    } else {
        std::cout << "Number is non-positive." << std::endl;
    }
    return 0;
}
switch
  • 基本语法
switch (expression) {
    case value1:
        // 如果expression的值等于value1,执行这里的代码块
        break;
    case value2:
        // 如果expression的值等于value2,执行这里的代码块
        break;
    // ... 其他情况
    default:
        // 如果expression的值不匹配任何case,执行这里的代码块
        break;
}
  • 实例
#include <iostream>
int main() {
    int day = 3;
    switch (day) {
        case 1:
            std::cout << "Monday" << std::endl;
            break;
        case 2:
            std::cout << "Tuesday" << std::endl;
            break;
        case 3:
            std::cout << "Wednesday" << std::endl;
            break;
        default:
            std::cout << "Invalid day" << std::endl;
    }
    return 0;
}

2. 循环语句

for
  • 基本语法
for (initialization; condition; increment/decrement) {
    // 循环体代码
}
  • 实例
#include <iostream>
int main() {
    for (int i = 0; i < 10; ++i) {
        std::cout << i << std::endl;
    }
    return 0;
}
while
  • 基本语法
while (condition) {
    // 循环体代码
}
  • 实例
#include <iostream>
int main() {
    int i = 0;
    while (i < 10) {
        std::cout << i << std::endl;
        ++i;
    }
    return 0;
}
do-while
  • 基本语法
do {
    // 循环体代码
} while (condition);
  • 实例
#include <iostream>
int main() {
    int i = 0;
    do {
        std::cout << i << std::endl;
        ++i;
    } while (i < 10);
    return 0;
}

3. 跳转语句

break
  • 用途:用于终止最近的 whiledo-whileforswitch 语句。

  • 实例(与 for 循环结合使用):

#include <iostream>
int main() {
    for (int i = 0; i < 10; ++i) {
        if (i == 5) {
            break; // 当 i 等于 5 时,终止循环
        }
        std::cout << i << std::endl;
    }
    return 0;
}
continue
  • 用途:用于跳过循环体中的剩余部分,并立即开始下一次迭代。

  • 实例(与 for 循环结合使用):

#include <iostream>
int main() {
    for (int i = 0; i < 10; ++i) {
        if (i == 5) {
            continue; // 当 i 等于 5 时,跳过本次循环的剩余部分
        }
        std::cout << i << std::endl;
    }
    return 0;
}
goto(不推荐使用)

由于 goto 语句可能导致代码难以理解和维护,因此现代编程中通常不推荐使用它。但在某些特殊情况下,它仍然可能存在。

#include <iostream>  

int main() {  
    int i = 0;  
    if (i == 0) {  
        goto skip; // 跳转到标签 "skip"  
    }  
    std::cout << "This will not be printed." << std::endl;  
    skip: // 标签 "skip"  
    std::cout << "This will be printed." << std::endl;  
    return 0;  
}