C++入门基础知识

1.C++基本数据类型:
整型int 字符型 char 浮点型 float double
逻辑性 bool 无类型 void 也称内置类型(语言内部 已定义好的类型)
非基本数据类型:
数组 type[] 指针 type* 结构体 struct
联合体 union 枚举 enum 类 class (这些即就是自定义类型)
2.标准输入输出流对象:
cout 标准输出流对象 << 输出操作符
cin 标准输入流对象 >> 输入操作符
3.endl 换行操作符
4.名字空间域 :
名字空间域 可以解决全局命名冲突的问题,用花括号把文件的一部分括起来,并用namespace开头给它起个名字,例如:

#include <iostream>
using namespace std;
namespace  name1
{
    int i = 0;
}
using namespace name1;
int main()
{
    //cout << name1::i<<" "<< endl;   //  :: 作用域解析符
    cout << i << " " << endl;   //如果加上使用名字空间域中的变量using namespace name1; 就可以直接访问名字空间域中的变量,与上句效果等价
    system("pause");
    return 0;
}

5.缺省参数,半缺省参数
缺省参数 只要出现默认参数,那之后的参数也要带默认值,下面举个例子:

#include <iostream>
using namespace std;
int Add1(int x=1, int y=2)
{
    return x + y;
}
//半缺省参数
int Add2(int i, int j = 0)
{
    return i + j;
}
void test()
{
    Add1();
    cout << Add1() << " " << endl;
    Add1(2);
    cout << Add1(2) << " " << endl;
    Add1(1, 2);
    cout << Add1(1,2) << " " << endl;
    Add2(3);
    cout << Add2(3) << " " << endl;
    Add2(1, 2);
    cout << Add2(1,2) << " " << endl;
}
int main()
{
    test();
    system("pause");
    return 0;
}

6.引用:
给已定义的变量起一个新的名字 引用必须初始化,一个变量可取多个别名,引用只能在初始化时引用一次,不能改变为引用其他变量。

  #include <iostream>
using namespace std;
void test1()
{
    int a = 1;
    int &b = a;
    cout << "a:address " << &a << endl;
    cout << "b:address " << &b << endl;
    a = 2;
    b = 3;
    int &c = b;  //引用一个引用变量,别名的别名
    b = 4;
}
void test2()
{
    int a = 4;
    const int &b = a;
    a = 5;  //a改变,b也会改变
    //b = 7;   //不能给常量赋值
    const int c = 1;
    const int &d = c;
    //int &e = c;  //不可以这样用const int和int &不能这样赋值,类型不同
    const int &f = 8;  //常量具有常性,只有常引用可以引用常量
    double g = 9.9;
    //int &g1 = g; //无法用double类型的g初始化int &g1,g1引用的是带有常性的临时变量,不能赋值
    const int &h = g;
}
int main()
{
    test1();
    test2();
    system("pause");
    return 0;
}  

运行结果如下图:
这里写图片描述
7. 引用传递:如果形参为引用类型,形参是实参的别名。

#include <iostream>
using namespace std;
void mySwap(int &left,int &right)  
{
    int tmp = left;
    left = right;
    right = tmp;
}
void Myswap(int* left, int* right)
{
    int tmp = *left;
    *left = *right;
    *right = tmp;
}
int main()
{
    int a = 10;
    int b = 33;
    mySwap(a, b);
    cout << a << " " << b << " " << endl;
    Myswap(&a, &b);
    cout << a << " " << b << " " << endl;
    system("pause");
    return 0;
}

运行结果如下图:
这里写图片描述
8.引用和指针的区别和联系:
1.引用只能在定义时初始化一次,之后不能改变指向其他变量;指针变量的指向可以改变。
2.引用必须指向有效变量,指针可以为空。
3.sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向变量的大小,而sizeof指针是对象地址的大小。
4.指针,引用自加和自减意义不一样。
5.相对而言,引用比指针更安全。
指针比引用更灵活但也更危险。使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置0,否则可能存在野指针问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值