CPP入门基础知识(一)

本文详细介绍了C++中的命名空间、基本输入输出流、函数重载、缺省参数及指针与引用的概念与使用方法。并通过实例展示了这些知识点的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.命名空间 (namespace)
1>定义:命名空间,是指标识符的各种可见范围。可以用一个花括号吧文件的一部分括起来,并以关键字 namespace开头给它起一个名字。c++的所有标识符都被定义在一个名为std的namespace中。

#include<iostream>
using namespace std;
namespace FIRST //定义一个名为FIRST的命名空间
{
    int a; //在命名空间内定义一个局部变量a
}

2>如何访问命名空间里面内容
(1)通过作用域解析符号(::)访问

namespace FIRST //定义一个名为FIRST的命名空间
{
    int a; //在命名空间内定义一个局部变量a
}
int main()
{
    cout << FIRST::a << endl;//通过作用解析域访问空间内成员
}

<2>通过使用using namespace+命名空间名访问

namespace FIRST //定义一个名为FIRST的命名空间
{
    int a; //在命名空间内定义一个局部变量a
}
int main()
{
    using namespace FIRST;//访问命名空间FIRST

    cout <<a << endl;
}

注意:一般自己不定义命令空间。

2.C++基本的输入输出流

cin是标准输出流对象,<<是输出操作符;

cin>>变量名1>>变量名2...;

cout是标准输入流对象,>>是输入操作符;

cout<<变量名1<<变量名2...;

3.函数重载

所谓函数重载是指一个函数名可以对应着多个函数的实现。
函数重载的原因:在同一作用域内,一组函数的函数名相同,参数列表不同(个数不同/类型不同),返回值可以不同。
Linux环境下,编译器会对函数名重命名。
下面举一个参数类型不同的重载函数的例子:

#include<iostream>
int Add(int ,int);
double Add(doule,double);
void main()
{
  cout<<Add(5,10)<<endl;
  cout<<Add(5.0,10.0)<<endl;
}
int Add(int x,int y)
{
   return x+y;
}
double Add(double a.double b)
{
   return a+b;
}

程序运行结果为:

15
15.0

4.C++缺省参数

1>全缺省

int Add(int a=10,int b=20)
{
   return a+b;
}
void main()
{
  Add();
}

2>半缺省

int Add(int a,int b=2)
{
    return a+b;
}
void main()
{
   Add(1);
}

注意:c++中,允许在函数说明或者定义一个或者多个的参数指定默认值,但是,要求在一个指定了默认值的右边,不能出现没有指定默认值的参数。

5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)
(1)指针
概念:指针是用来存放某个变量地址的一种变量,称这个指针指向指向被存放地址的变量。
用法:

<类型>*<指针名1>,*<指针名2>...

例如:

    int *pa;//一个指向int型变量的指针
    float *pb;//一个指向float型变量的指针
    char *pc;//一个指向char型变量的指针
    char(*pd)[];//一个指向一维数组的指针
    int(*pe)();//一个指向返回值为int型的函数指针
    int**pl;//一个指向一个指针的指针,即二级指针
int a(5);
int *p=&a;
//p是一个指向变量a的指针,p的数据值就是变量a的地址

(2)引用
概念:引用是某个已知变量或对象的别名,引用不是变量,他自身没有值,也没有地址值,不占内存空间。
使用

<类型>&<引用名>=<初始值>;
int a(1);
int &b=a;

const int a(1);
//int &b=a;这种引用是错误的
const int &=a;//正确的

(3)指针与引用

例:分别使用参数为指针和引用交换两个数

# define CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stdlib.h>
using namespace std;
void Swap1(int *x, int *y)
{
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}
void Swap2(int &x,int &y)
{
    int temp;
    temp = x;
    x = y;
    y = temp;
}
int main()
{
    int a(1);
    int b(2);
    Swap1(&a, &b);
    cout << a << b << endl;//2  1
    Swap2(a,b);
    cout << a << b << endl;//1  2
    system("pause");
    return 0;
}

指针和引用的区别:
指针本身有自己的内存空间,引用没有;
引用必须指向有效的变量,指针可以为空;
引用访问一个变量是直接访问,指针是间接访问;
引用与其指示物不能分离,相对于指针而言,引用更安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值