判断
if判断
代码:
/*if判断*/
#include<iostream>
using namespace std;
int main() {
//局部变量声明
int a = 10;
//使用if检查布尔条件
if (a < 20) {
//条件为真,输出下面语句
cout << "a < 20" << endl;
}
cout << "a的值是" << a << endl;
return 0;
}
结果:
if…else
代码:
/*if...else*/
#include<iostream>
using namespace std;
int main() {
//局部变量声明
int a = 100;
//检查布尔条件
if (a < 20) {
cout << "a < 20" << endl;
}
else {
cout << "a >= 20" << endl;
}
cout << "a的值为:" << a << endl;
return 0;
}
结果:
switch语句
代码:
/*switch*/
#include<iostream>
using namespace std;
int main() {
char grade = 'D';
switch (grade)
{
case 'A':
cout << "很棒" << endl;
break;
case 'B':
cout << "不错" << endl;
break;
case 'C':
cout << "及格" << endl;
break;
case 'D':
cout << "不及格" << endl;
break;
default:
cout << "该学生无成绩" << endl;
break;
}
return 0;
}
结果:
switch嵌套
代码:
/*switch嵌套*/
#include<iostream>
using namespace std;
int main() {
int a = 100;
int b = 200;
switch (a)
{
case 100:
cout << "这是外部switch" << endl;
switch (b)
{
case 200:
cout << "这是内部switch" << endl;
default:
break;
}
default:
break;
}
return 0;
}
结果:
函数
代码:
/*函数及调用*/
#include<iostream>
using namespace std;
//函数声明
int max(int p1, int p2);
int main() {
int a = 100;
int b = 200;
int ret;
ret = max(a, b);
cout << "最大值为:" << ret << endl;
return 0;
}
//函数定义
int max(int p1,int p2){
int result;
if (p1 > p2) {
result = p1;
}
else {
result = p2;
}
return result;
}
结果:
函数声明的作用:
因为C++支持函数过载。也就是说同样一个函数名,可以带不同的参数,从而形成不同的函数,它们可以并存并且不至于出现连接错误。这一切都要归功于C++名字粉碎的功劳,也就是mangling。
该答案出自:
https://www.cnblogs.com/tsecer/p/10485964.html
(侵权则删)
传值调用
修改函数内的形式参数对实际参数没有影响
该方法把参数的实际值赋值给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
/*传值调用*/
#include<iostream>
using namespace std;
//函数声明
void swap(int x, int y);
int main() {
//局部变量声明
int a = 100;
int b = 200;
cout << "交换前a的值:" << a << endl;
cout << "交换前b的值:" << b << endl;
//调用函数来交换值
swap(a, b);
cout << "交换后a的值:" << a << endl;
cout << "交换后b的值:" << b << endl;
return 0;
}
//函数定义
void swap(int x,int y) {
int temp;
temp = x;
x = y;
y = temp;
cout << "交换中a的值:" << x << endl;
cout << "交换中b的值:" << y << endl;
return;
}
结果:
虽然在函数内ab的值互换了,但是a和b的值没有发生变化
指针调用
修改形式参数会影响实际参数
该方法把参数的地址赋值给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
代码:
/*函数参数,指针调用*/
#include<iostream>
using namespace std;
//函数声明
void swap(int *x, int *y);
int main() {
//局部变量声明
int a = 100;
int b = 200;
cout << "交换前a的值:" << a << endl;
cout << "交换前b的值:" << b << endl;
/*
&a表示指向a的指针,即变量a的地址
&b表示指向b的指针,即变量b的地址
*/
swap(&a, &b);
cout << "交换后a的值:" << a << endl;
cout << "交换后b的值:" << b << endl;
return 0;
}
void swap(int *x, int *y) {
int temp;
temp = *x;
*x = *y;
*y = temp;
return;
}
结果:
引用调用
该方法把参数的引用赋值给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
代码:
/*函数调用,引用调用*/
#include<iostream>
using namespace std;
//函数声明
void swap(int& a, int& b);//此时a,b代表地址;&a,&b代表值
int main() {
int a = 100;
int b = 200;
cout << "交换前a的值:" << a << endl;
cout << "交换前b的值:" << b << endl;
swap(a,b);
cout << "交换后a的值:" << a << endl;
cout << "交换后b的值:" << b << endl;
return 0;
}
void swap(int& x, int& y) {
cout << "x是变量" << x << endl;
cout << "y是变量" << y << endl;
int temp;
temp = x;
x = y;
y = temp;
return;
}
结果:
参数的默认值
代码:
/*函数参数的默认值*/
#include<iostream>
using namespace std;
int sum(int a, int b = 20) {
int result;
result = a + b;
return result;
}
int main() {
int a = 100;
int b = 200;
int result;
result = sum(a, b);
cout << "Total value is :" << result << endl;
result = sum(a);
cout << "Total value is :" << result << endl;
return 0;
}
结果:
Lambda 函数与表达式
没看。。。记不住