营销型网站建设和规划lnmp下安装wordpress
news/
2025/9/22 21:03:55/
文章来源:
营销型网站建设和规划,lnmp下安装wordpress,苏州网络公司优惠政策,学校网站建设费用文章目录 四、流程控制语句4.1 选择结构4.1.1 if语句 4.1.2 三目运算符4.1.3 switch语句注意事项 4.1.4 if和switch的区别【CHAT】4.2 循环结构4.2.1 while循环语句4.2.2 do...while循环语句 4.2.3 for循环语句九九乘法表 4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 … 文章目录 四、流程控制语句4.1 选择结构4.1.1 if语句 4.1.2 三目运算符4.1.3 switch语句注意事项 4.1.4 if和switch的区别【CHAT】4.2 循环结构4.2.1 while循环语句4.2.2 do...while循环语句 4.2.3 for循环语句九九乘法表 4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 goto语句- goto关键字。 五、数组5.1 一维数组CLion中有错误cast from ‘int*’ to ‘int’ loses precision [-fpermissive]问题解决 冒泡排序C语言内置的qsort 5.2 二维数组 六、函数值传递如果想要改变实参 -- 互换地址的内容 四、流程控制语句
顺序结构、选择结构、循环结构4.1 选择结构
4.1.1 if语句
用于执行基于条件的代码块。if语句的三种形式 单行格式if语句 多行格式if语句 多条件的if语句 1.单行格式if语句if(条件){ 条件满足执行的语句 } if条件表达式后不要加分号
if (sum100){coutsum100endl;}( 2 ) .多行格式if语句
if(条件){ 条件满足执行的语句 }
else{ 条件不满足执行的语句 };( 3 ).多行格式if语句
if(条件){ 条件满足执行的语句 }
else{ 条件不满足执行的语句 };4.1.2 三目运算符
语法表达式1 ? 表达式2 表达式3 int a 10;int b 20;int c a b ? a : b;cout c c endl;4.1.3 switch语句
switch - case
每个case标签之后不会自动执行到下一个case标签除非使用break语句来显式终止switch块。
switch(表达式){case 结果1执行语句;break;case 结果2执行语句;break;...default:执行语句;break;}
举例代码
#include iostreamint main() {int choice 2;switch (choice) {case 1:std::cout 选项1 std::endl;case 2:std::cout 选项2 std::endl;case 3:std::cout 选项3 std::endl;default:std::cout 默认选项 std::endl;}return 0;
}
这是因为没有break语句来终止case标签导致控制流“直通”到后续的case标签。如果您想要避免这种行为应在每个case块的末尾使用break语句来显式退出switch块。
注意事项 switch语句中的表达式类型通常只能是整型或字符型。这是因为case标签中的常量值需要与表达式的类型匹配。 如果在case标签中没有使用break语句程序会继续执行下一个case标签这就是所谓的“直通”行为。 switch语句在处理多个条件判断时具有结构清晰和执行效率高的优点。它适用于在一系列离散值中选择执行不同的代码块。 一个switch语句的缺点是它不能直接判断区间只能针对离散的值进行判断。要处理区间通常需要使用一系列if语句或其他逻辑结构。
这些特点使switch成为一种适用于某些情况下的有效控制结构但在其他情况下可能需要使用不同的条件控制方式。
4.1.4 if和switch的区别【CHAT】
if更灵活适用于各种条件逻辑
switch更适用于多个等值条件的情况下代码更具可读性。用法 if语句适用于任何条件判断可以处理各种复杂的条件表达式包括比较、逻辑运算等。它可以用来实现灵活的条件控制。switch语句通常用于根据一个表达式的不同值来选择执行不同的代码块。它适用于多个等值条件的情况。 条件 if语句可以处理各种条件包括布尔表达式、比较表达式、逻辑表达式等可以实现更灵活的条件逻辑。switch语句通常用于处理整数或字符类型的表达式用于离散的值判断而不适用于范围或其他类型的条件。 多条件 if语句可以轻松处理多个条件通过嵌套if语句或使用else if来实现多个条件分支。switch语句通过多个case标签来处理多个等值条件通常更适用于处理相对简单的多条件情况。 可读性 switch语句通常在处理多个等值条件时更具可读性因为所有条件都集中在一起。if语句用于处理复杂的条件逻辑时可能需要更多的嵌套可读性可能较差。 执行流程 if语句是根据条件的真假来决定是否执行某个代码块。switch语句是基于表达式的值来选择执行哪个case块然后执行该块内的代码之后需要使用break语句来终止switch块否则会直通到下一个case。
综上所述选择使用if还是switch取决于您的需求。
4.2 循环结构
4.2.1 while循环语句
语法 while(循环条件){ 循环语句 }
int num 0;while (num 10){cout num num endl;num;}执行循环语句时确实必须提供跳出循环的出口否则可能会陷入死循环导致程序永远不会停止执行。以下是一些常见的方法来实现循环的退出
4.2.2 do…while循环语句
语法 do{ 循环语句 } while(循环条件); 与while的区别在于do…while会先执行一次循环语句再判断循环条件
4.2.3 for循环语句
语法 for(起始表达式;条件表达式;末尾循环体) { 循环语句; } for循环中的表达式要用分号进行分隔
九九乘法表 4.3 跳转语句
4.3.1 break语句 在switch语句中break语句用于终止当前的case标签块并跳出switch语句。这可以防止直通到下一个case标签。 在循环语句中如for、while、do-whilebreak语句用于提前跳出当前循环即使循环条件仍然满足。它用于终止循环的执行使程序流程进入循环后的下一个语句。 在嵌套循环中如果存在多个嵌套循环break语句通常跳出最近的内层循环而不是整个外层循环。这允许您有选择性地退出嵌套循环中的一个循环而不必退出所有嵌套层次。
break语句是控制流的重要工具用于在满足特定条件时改变程序的执行路径。要注意滥用break可能会导致代码难以理解和维护因此应该慎重使用。
4.3.2 continue语句
continue并没有使整个循环终止而break会跳出循环
4.3.3 goto语句- goto关键字。
语法 goto 标记;
goto语句是一种在编程中用来无条件跳转到程序中的标记label处的控制语句。goto 标记;标记是在程序中的一个标签通常是一个带有冒号的标识符例如 label:。
使用goto语句可以使程序跳转到指定标记的位置继续执行代码。这可以在某些情况下用于实现特定的控制流程但要小心使用因为滥用goto可能导致程序难以理解和维护产生不可预测的行为。
大多数现代编程语言鼓励避免使用goto并提供更结构化的控制结构如条件语句和循环以更清晰和可维护的方式实现控制流程。在实际编程中通常不需要使用goto并且可以通过其他方法来实现相同的目标。
五、数组
类型、数组名、数量1数据类型相同 数组中的每个数据元素都必须是相同的数据类型。这意味着如果您创建一个整数数组每个元素都必须是整数如果是字符数组每个元素都必须是字符以此类推。
2连续内存 数组的元素在内存中是连续存储的这意味着数组中的元素在内存中相邻没有额外的空间分隔它们。这也是数组的一个重要特点因为它允许通过索引来快速访问元素索引值可用于计算元素的内存地址。
5.1 一维数组
一维数组定义的三种方式
数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] { 值1值2 ...};数据类型 数组名[ ] { 值1值2 ...};
1. 可以统计整个数组在内存中的长度sizeof(arr) / sizeof(arr[0]) 2可以获取数组在内存中的首地址(int)arr
CLion中有错误cast from ‘int*’ to ‘int’ loses precision [-fpermissive]问题解决
该这里是因为基于Linux内核的64位系统上指针类型占用8个字节而int类型占用4个字节所以会出现loses precision。
可以先将int* 转成long类型long类型可以隐式类型转换到int类型。直接修改为long long即可
cout 数组首地址为 (long long)arr endl;
cout 数组第一个元素地址为 (long long)arr[0] endl;
cout 数组第二个地址为 (long long)arr[1] endl;冒泡排序
int main() {int arr[9] { 1,7,5,3,4,8,6,2,3};for (int i 0; i 9 - 1; i){for (int j 0; j 9 - 1 - i; j){if (arr[j] arr[j 1]){int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}for (int i 0; i 9; i){cout arr[i] endl;}system(pause);return 0;
}C语言内置的qsort
#include stdio.h
#include stdlib.h// 比较函数用于告诉qsort如何比较元素
int compare(const void *a, const void *b) {return (*(int *)a - *(int *)b);
}int main() {int arr[] {5, 2, 9, 1, 5, 6};int length sizeof(arr) / sizeof(arr[0]);// 使用qsort对整数数组进行升序排序qsort(arr, length, sizeof(int), compare);// 打印排序后的数组printf(排序后的数组);for (int i 0; i length; i) {printf(%d , arr[i]);}printf(\n);return 0;
}
5.2 二维数组
二维数组定义的四种方式
数据类型 数组名[ 行数 ][ 列数 ];数据类型 数组名[ 行数 ][ 列数 ] { {数据1数据2 } {数据3数据4 } };数据类型 数组名[ 行数 ][ 列数 ] { 数据1数据2数据3数据4}; 数据类型 数组名[ ][ 列数 ] { 数据1数据2数据3数据4};
六、函数
将一段经常使用的代码封装起来减少重复代码cpp中的模块
返回值类型 函数名 参数列表
{函数体语句return表达式}int add(int num1, int num2)
{//函数体语句int sum num1 num2;//return表达式return sum;
}调用 函数名参数
int add(int num1, int num2) //定义中的num1,num2称为形式参数简称形参形参列表
{int sum num1 num2;return sum;
}int add(int num1, int num2, int num3) {int sum num1 num2 num3;return sum;
}int main() {int a 10;int b 10;//调用add函数int sum add(a, b);//调用时的ab称为实际参数简称实参cout sum sum endl;int sum1 add(a, b, 10);cout sum1 sum1 endl;a 100;b 100;sum add(a, b);cout sum sum endl;system(pause);return 0;
}值传递
值传递时形参是修饰不了实参的
形参无论发生什么变化都不会影响实参
void swap(int num1, int num2)
{cout 交换前 endl;cout num1 num1 endl;cout num2 num2 endl;int temp num1;num1 num2;num2 temp;cout 交换后 endl;cout num1 num1 endl;cout num2 num2 endl;//return ; 当函数声明时候不需要返回值可以不写return
}int main() {int a 10;int b 20;swap(a, b);cout mian中的 a a endl;cout mian中的 b b endl;system(pause);return 0;
}如果想要改变实参 – 互换地址的内容
void swap(int num1, int num2)
{cout 交换前 endl;cout num1 num1 endl;cout num2 num2 endl;cout num1 num1endl;cout num2 num1endl;int temp num1;num1 num2;num2 temp;cout temptempendl;cout 交换后 endl;cout num1 num1 endl;cout num2 num2 endl;cout num1 num1endl;cout num2 num1endl;//return ; 当函数声明时候不需要返回值可以不写return
}int main() {int a 10;int b 20;swap(a, b);cout mian中的 a a endl;cout mian中的 b b endl;cout a aendl;cout b bendl;system(pause);return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910368.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!