嵌入式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;// 程序正常退出,返回0return 0;
}
2、数据类型、运算符和表达式
C++ 是一种强类型的编程语言,它支持多种数据类型、运算符和表达式。下面是对这些主题的简要概述:
数据类型
C++ 中的数据类型可以分为几大类:
- 基本数据类型:
- 整数类型:
int
,short
,long
,long long
(以及它们的无符号版本,如unsigned int
)- 浮点数类型:
float
,double
,long double
- 字符类型:
char
(可以是有符号的或无符号的,具体取决于编译器)- 宽字符类型:
wchar_t
(用于存储宽字符,如 Unicode 字符)- 布尔类型:
bool
(只能取true
或false
)
- 复合数据类型:
- 数组:存储相同类型元素的固定大小序列。
- 结构体(
struct
):允许你将多个不同类型的变量组合成一个单一的类型。- 联合体(
union
):一种特殊的数据结构,允许你在相同的内存位置存储不同的数据类型。- 类(
class
):面向对象编程的基础,用于创建自定义的数据类型。- 枚举(
enum
):一种用户定义的数据类型,它包含一组命名的整数值。
- 指针类型:指针是一个变量,其值为另一个变量的地址。所有指针类型的通用形式是
type*
,其中type
是指针所指向的变量的数据类型。- 引用类型:引用是变量的别名,它允许你使用不同的名称来访问同一个变量。引用必须在声明时初始化,并且之后不能重新绑定到另一个变量。
- 空类型:
void
表示无类型。它经常用于不返回任何值的函数或指向任意类型的指针。运算符
C++ 中的运算符用于执行各种操作,如算术运算、比较、逻辑运算、位运算等。以下是一些主要的运算符类别:
- 算术运算符:
+
,-
,*
,/
,%
(取模)- 关系运算符:
==
,!=
,>
,<
,>=
,<=
- 逻辑运算符:
&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)- 位运算符:
&
(按位与)、|
(按位或)、^
(按位异或)、~
(按位取反)、<<
(左移)、>>
(右移)- 赋值运算符:
=
(简单赋值)、+=
、-=
、*=
、/=
等(复合赋值)- 条件运算符(三元运算符):
? :
- 指针和引用运算符:
&
(取地址)、*
(解引用)- 范围解析运算符(作用域解析运算符):
::
- 成员访问运算符:
.
(成员访问)、->
(通过指针访问成员)- 递增和递减运算符:
++
(递增)、--
(递减)- 类型转换运算符:
static_cast
,dynamic_cast
,const_cast
,reinterpret_cast
(这些是 C++ 特有的类型转换运算符)表达式
表达式是由运算符和操作数组成的语句,用于计算一个值。例如,
x + y
是一个表达式,其中+
是运算符,x
和y
是操作数。表达式的结果取决于其组成部分的类型和值,以及所使用的运算符。在 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 ; 真为1cout << 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
-
用途:用于终止最近的
while
、do-while
、for
或switch
语句。 -
实例(与
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;
}