C++学习笔记——01初识C++

🌿前言:本系列笔记是主要是对于谭浩强的c++程序设计的学习笔记再加上一些我自己的理解。如果有误欢迎大家指出。

建议是有基础的同学快速入门,或者复习用

一、简单的C++程序

#include<iostream>    //预编译指令
using namespace std;  //使用命名空间
int main()            //函数头
{                     //该行及以下为函数体,也就是用花括号包围起来的部分
    return 0;
}

二、C++对C的扩充

1.C++的输入输出

输入简单来说就是cin+>>+你要输入的内容+分号。与输入类似,输出就是cout+<<+你要输出的内容+分号。

2.用const定义常变量

直接在定义语句前加入const即可

3.函数原型声明

与函数定义相同,位于主函数中,记得句末加上分号

4.函数重载

在同一作用域可用同一函数名定义多个函数,其参数个数或类型必须至少有一个不同,返回值类型可同也可不同。

int max(int a,int b,int c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
int max(int a,int b)
{
    if(b>a)a=b;
    return a;
}
5.函数模板

建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟类型来指定(凡是函数体相同的函数都可以用函数模板来代替,只需在模板中定义一次即可)

template< typename T >

通用函数定义

template<typename T>
T max(Ta,Tb,Tc)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
6.有默认参数的函数

给定默认参数的方法,如

float area(float r=6.5);

如果有多个形参,也可以只对部分形参指定默认值

函数原型如下:

float volume(float h,float r=12.5);

指定默认值的参数必须放在形参表列的最右端,如:

void f1(float a,int b=0,int c,char d='a'); //不正确
void f1(float a,int c,int b=0,char d='a'); //正确

一个函数不能即作为重载函数又作为有默认参数的函数

7.变量的引用
  1. 概念
    引用,又叫别名,作用是为一个变量再起另外一个名字,以便在需要时可以方便,间接的引用改变量。
    声明方法举例:
int a;
int &b=a;//(&是引用声明符。)
  1. 关于引用的简单说明

(1)对引用的初始化可以用变量名,也可以用另一个引用。

(2)引用不另外开辟内存单元,在声明引用时必须同时使其初始化,即声明其代表哪一个变量

(3)引用在初始化后不能再被重新声明为另一变量的别名。

  1. 将引用作为函数参数

C++之所以增加引用,主要是利用它作为函数参数,以扩充函数传递数据的功能

传值方式调用——将实参的值传给形参,形参是实参的拷贝

引用方式调用——将实参的地址传给引用型形参,这时形参与实参是同一个变量。

void swap(int &a,int &b)
{
    int t;
    t=a;
    a=b;
    b=t;
}
  1. 对引用的进一步说明

    (1)不能建立void类型的引用

    (2)不能建立引用的数组

    (3)可以把变量的引用的地址赋给一个指针,此时指针指向的是原来的变量。但不能定义指向引用类型的指针变量,即不能写成

    void swap(int &a,int &b)
    {
        int t;
        t=a;
        a=b;
        b=t;
    }
    

    (4)可以建立指针变量的引用

    int i=5;
    int *p=&i;
    int *&pt=p;
    

    (5)可以用const对引用加以限定,不允许改变引用的值

    (6)可以用常量或表达式对引用进行初始化,但此时必须用const进行声明

    int i=5;
    const &a=i+3;
    

    用这种办法不仅可以用表达式对引用初始化,还可以用不同类型的变量对其进行初始化(要求要能赋值兼容)

8.内置函数

内置函数——嵌入主函数的函数,适用于规模很小且频繁使用的函数

节省运行时间,却增加了目标代码长度。

在函数首部加一个inline即可

9.作用域运算符

作用域运算符“::”,可以指定所需要的作用域

10.字符串变量

(1)定义字符串变量

需包含string的头文件

string str1;

(2)对字符串变量赋值

可以用赋值语句,也可以用另一个字符串变量对其赋值

还可以对字符串变量中的某一字符进行操作

string word="Then";
word[2]='a';//修改后变为“Than”

(3)字符串变量的输入输出

cin>>str1;
cout<<str2;

(4)字符串变量的运算

复制用赋值号“=”

连接用加号

比较直接用关系运算符

(5)字符串数组

string n[5];

不要求每个字符串元素有相同的长度

每个字符串元素只包含本身字符不包括“\0”

数组里的字符串变量里存放的是字符串的指针

11.动态分配和撤销内存的运算符new和delete

molloc和free

new运算符使用的一般格式:

new 类型[初值];

分配数组空间时不能指定初值

new int(100);
new char[10];

delete运算符使用的一般格式:

delete []指针变量;(加一对方括号代表是对数组空间的操作)

delete p;
delete []pt;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值