C++学习笔记
基本格式
#include <iostream>//插入一个扩张文件,使得可以调用相关的函数。
#//若要使用其他函数可再添加头文件
using namespace std;//设置一个域名,使得该区域变量与其他区域不冲突。
int main()//主函数
{
;
;
return 0
}
数据(变量)类型
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | A + B 将得到 30 |
- | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* | 把两个操作数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
– | 自减运算符,整数值减少 1 | A-- 将得到 9 |
逻辑运算符
逻辑运算符 | 描述 | 实例 |
---|---|---|
&& | 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。 | (A && B) 为 false。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 | (A || B) 为 true。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 | !(A && B) 为 true。 |
定义变量
全局变量:
int a=1//定义a为整数型,且赋值为1
若只int a
则只是声明一个变量,在调用时会出现报错的情况
需要将变量初始化
int a=0
int a[1000]={0}
若在前面加const
则是将变量转化为静态(常量),使其不能被后面的程序所改变。
#include <iostream>
using namespace std;
int main()
{
const double p1=52.0,p2=13,p3=14;//定义常量,不能被改变。
double total=0;
int n1=0,n2=0,n3=0;//变量初始化,
cout << "三种商品的价格为:" << p1 << ',' << p2 << ',' << p3 << '\n';
cout << "请问每样需要买几件?" << endl;
cin >> n1 >> n2 >> n3 ;
total=n1*p1+n2*p2+n3*p3;
cout << total << endl;
return 0
}
局部变量:
在某一函数或语句(循环)中定义的变量(如i)为局部变量,循环外不可用。
数组
int arr[12]={0}
//定义一个容量为12的一维数组并将其初始化为0.
int arr[4][3]={0}
//定义一个容量为4列3行的二维数组并将其初始化为0
字符数组
字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
char str[]={"darling"}
//整体赋值。
char str[7]={'d','a','r','l','i','n','g'}
//逐个赋值。
循环语句
for循环
for (int i = 0; i < n; i++) { // 在循环中定义的变量(如i)为局部变量,循环外不可用。i++是i自加1,当i不满足 i < n时,跳出循环
cout << i;
}
while循环
#include <iostream>
using namespace std;
int main ()
{
int a = 0;
while( a < 6 )//当括号内的条件为假时,跳出循环。
{
a++;
}
return 0;
}
另一种跳出循环的另一个例子
#include <stdio.h>
using namespace std;
int main()
{
int x = 10;
int y = 0;
while (x--) //当x=0时,也能跳出循环
{
++y;
}
return 0;
}
条件语句
#include <iostream>
using namespace std;
int main()
{
int year = 0;
cin >> year;
if (year <0)
{
cout<<"in the hell,my bro?"<<endl;
}
else if(year==0)
{
cout<<"the world start!"<<endl;
}
else
{
if (year%4==0)//括号写的是进入该语句的条件。满足则进入
{
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
}
return 0;
}
if语句短路
`int x=1,i=1;
if(x>0||++i)`
`int x=1,i=1;
if(x<0&&i++)`
前面条件判断为真,则进入语句,不会执行自加操作。
函数
在主函数外定义一个函数
return_type function_name( parameter list )
{
body of the function
}
调用函数
创建 C++ 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。
当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。
调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。
#include <iostream>
using namespace std;
int max(int num1, int num2);
{
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
int main ()
{
int a = 100;
int b = 200;
int ret;
ret = max(a, b);
cout << "Max value is : " << ret << endl;
return 0;
}
递归
将一个循环的问题拆分成能完成的最小子问题单元,将解决这个问题的标准,扩大到整个问题。例:斐波那契数列,最小子问题:数=前两数+前一数。
int Fib(int n) {
if (n < 2)
return 1;
return Fib(n - 1) + Fib(n - 2);
结构体
允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体。
struct 结构体名
{成员列表};
先声明再定义
struct member{ //结构体类型名
...
...
...
}member1, member2 //结构体变量名
声明同时定义
struct member
{
int number;
int name;
}member1, member2