注意:本文章有部分内容错误!!!//2021.11.20

C++2【基础函数篇】

请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码

请勿复制粘贴


学习C++的第二步,当然是了解常见的函数及其用法和对应的语法点了。

  • 整型变量
  • 前缀
  • double float char string
  • if else
  • forwhile
  • 输入输出
  • 自定义函数

整型变量

常见的整型变量有

int //取整,只能存整数
short
long
long long

几个例子:

#include <bits/stdc++.h>
using namespace std;
int a;
int b;

int main()
{
    cin >> a;
    cin >> b;
    cout << a+b;
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n,k;
int main()
{
    cin>>n>>k;
    double a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n-1);
    cout<<a[k];
}

具体的数据下一块再说


前缀

高精度

数据量大的意思

运算中,前缀就显得格外重要了

例如

unsigned前缀

无符号的意思,没有负数,代表者函数能赋值的大小变大了一倍

这里列出一个表

看不懂没关系,我也看不懂

类型 所占字节数 表示范围
short 2 -32,768 ~ 32,767
unsigned short 2 0 ~ 65,535
int 4 -2,147,483,648 ~ 2,147,483,647
unsigned int 4 0 ~ 4,294,967,295
long 4 -2,147,483,648 ~ 2,147,483,647
unsigned long 4 0 ~ 4,294,967,295
long long 8 -92233372036854775808 ~ 922333720368547758087
unsigned long long 8 0 ~ 18,446,744,073,709,551,615

除了 unsigned还有 const

可以理解为锁定后面的变量,使它不发生变化

#include<iostream>
using namespace std;

int main(void)
{
    const int  a = 7;
    int  *p = (int*)&a;
    *p = 8;
    cout<<a;
    return 0;
}

Double Float Char String

Double Float

float属于浮点类型(简单点就是小数),可以存放小数,float 数据类型被认为是单精度。double 数据类型通常是 float 的两倍大小,因此被认为是双精度。顾名思义,long double 数据类型又比 double 要大。还有一个叫 long double,与 long int同一个道理。还有一个点,浮点数据类型没有无符号分类,float doublelong double数据类型的变量都可以存储正数和负数。

数据类型 关键字 大小 范 围 有效数字
单精度 float 4字节 介于 ±3.4E-38 和 ±3.4E38 之间 7
双精度 double 8字节 介于 ±1.7E-308 和 ±1.7E308 之间 16
长双精度 long double 16字节 介于 ±2.22507e-308 和 ±1.79769e+308 之间 18-19

浮点常数有时也叫浮点常量,它们可以按多种方式表示,如程序 1 所示,E 符号表示法就是其中的一种。在要编写非常大或非常小的数字时,这可能是最简单的方法。

E 符号表示法既可以使用大写字母 E,也可以使用小写字母 e。注意,在源代码中,常数被写为 1.496E8 和 1.989E30,但是程序却将它们打印为 1.496e+008 和 1.989e+030。这两组数字是一样的。指数前面的加号也可加可不加。

也可以使用十进制符号来表示浮点常数。例如,常数 1.496E8 可以写成:
149600000.0

显然,E 符号表示法对于冗长的数字更为方便;但对于像 47.39 这样的数字,十进制格式就要优于 4.739E1。

以下所有浮点常数都是等效的:

  • 1.496E8
  • 1.496e8
  • 1.496E+8
  • 1.496e+8
  • 149600000.0

Char String

charstring都可以存储字符但string 是定义一个字符串,存储的是一段如“abcd”的数据,而且最后还有一个结束符'\0'
char 是定义一个字符,存储一个字符,占一个字节。具体的博主也不懂,博主还是个小白。想要具体了解可以去看看这位老哥的博文


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;
}

借用一下菜鸟的栗子,这下简单明了,如果 if的条件为真,那么执行if{}中的代码,如果条件为假,那就运行else{}里的,还有一种就是 else if用在多个 if的语句中

再来一个栗子

#include <iostream>
using namespace std;

int main ()
{
    int a = 100;
    if( a == 10 )
    {
        // 如果 if 条件为真,则输出下面的语句
        cout << "a 的值是 10" << endl;
    }
    else if( a == 20 )
    {
        // 如果 else if 条件为真,则输出下面的语句
        cout << "a 的值是 20" << endl;
    }
    else if( a == 30 )
    {
        // 如果 else if 条件为真,则输出下面的语句
        cout << "a 的值是 30" << endl;
    }
    else
    {
        // 如果上面条件都不为真,则输出下面的语句
        cout << "没有匹配的值" << endl;
    }
    cout << "a 的准确值是 " << a << endl;
    return 0;
}

是不是豁然开朗了呢


For While

先来一个栗子

#include<iostream>
using namespace std;
int a,b[10000];
int main()
{
    cin>>a
    for(int i=0;i<a;i++)
    {
    cin>>b[i];
    }
    return 0;
}

这是一个循环输入进数组的代码来感受一下for的用法

for

就是如此简单

关于 while

先来一个栗子

#include <iostream>
using namespace std;
int main ()
{
   int a=0;
   cin>>a;
   while(a<20)
   {
       cout<<"a 的值:"<<a<<endl;
       a++;
   }
   cout<<"nothing to do";
   return 0;
}

解析这个栗子:

while

就是如此简单。


输入输出

如前面栗子里的 cincout,这就是一种输入输出

注意

cin后是>>,cout后是<<,cin可以输入进变量,不过要先想想用哪种类型的变量哦

当然,除了这两种输入输出,还有一些

scanfprintf,不过这两种使用起来要带参数,我记不住,还是推荐新手们用 cincout

各种输入输出各有各自的有点,可以带参数的功能更强大,还有的读入输出速度更快等

自定义函数

自定义函数,就像写主函数一样,却略有不同。

先上栗子

#include <iostream>
using namespace std;

int gcd(int a,int b){
    if(b == 0)return a;
    return gcd(b,a%b);
}

int main(){
    int n,m;
    cin>>n>>m;
    cout<<gcd(n,m)<<endl;
    return 0;
}

共产档函数十分正确啊

int也换成 double等,栗子中的自定义函数用了递归的方式(自己调用自己)

再来举一个正常的栗子:

#include <iostream>
using namespace std;

int plus(int a,int b)
{
    return a+b;
}
int main()
{
    int c,d;
    cin>>c>>d;
    cout<<plus(c,d);
    return 0;
}

在这个栗子中自定义函数只起到了相加的作用,看上去没啥用,但是代码变得很多的时候,这是很有用的(就例如上面的gcd函数)

注意

return是自定义函数的返回值,前面的(int a,int b)是输入的类型,也可以是(int a),这个a,b是自定的


今天的内容就到这里
祝大家学习愉快
最后修改:2021 年 11 月 20 日 08 : 01 AM
如果觉得我的文章对你有用,请随意赞赏