C++学习-2023/12/13-C++数据类型

数据类型

NULL变成了nullptr,NULL存在二义性,nullptr关键字

bool类型 true-false–实际应用中就看到关闭线程-1字节-节省内存

打印结果true ==1, false == 0
一般条件表达式或者逻辑表达式,或者充当开关变量,标记变量

引用类型:C++极其重要类型:起别名,给常量起别名,右值引用

类型 &标志名

错误用法int &constNum = 12;

应该是const int& constNum = 12;

int&& rightValue= 1001;

引用的用法:
//充当函数的参数:防止拷贝本的产生
//充当函数的返回值:增加左值使用, 不能返回局部变量引用

4.作用分辩符

//定义变量使用就近原则
::变量 //代表全局区变量

自动推断类型auto类型

#include <iostream>

int testA = 0;

int& ReturnValueReference(int &num) 
{
    return num;
}

void ReturnValueReference2(int* &num)
{
    num = &testA;
}

//const 在C++上面更为严格,类型需要严重性一致
//void printConstValue(char* str)
//如果你想要即可以传入常量又可以传入变量,需要加const修饰
void printConstValue(const char* str)
{
    std::cout << str << "\n";
}

//只需要传入常量
void printOnlyConstValue(int&& str)
{
    std::cout << str << "\n";
}

void TestAuto()
{
    //1.不能单独定义变量
    //结合赋值使用
    auto intNum = 1;
    std::cout << intNum << "\n";
}

int TestAuto1(int a, int b)
{
    return a > b ? a : b;
}


int main()
{
    //int testA = 0;  //warning C4172: 返回局部变量或临时变量的地址: num
    ReturnValueReference(::testA) = 110;
    std::cout << ::testA << "\n";

    int* p = nullptr;
    ReturnValueReference2(p);
    std::cout << *p << "\n";  //110;

    printConstValue("爱莉");
    //右值引入当作函数参数,只能传入右值
    printOnlyConstValue(123);
    //move函数可以把左值变成右值---有个印象
    printOnlyConstValue(std::move(::testA));
    TestAuto();
    //C里面的写法函数指针 int(*pMax)(int, int) = Max;
    auto pp = TestAuto1;
    std::cout << pp(1,2) << "\n";  //定义后不能再更改。就会重定义
    //auto pp;//定义后不能再更改。就会重定义

    std::cout << "Hello World!\n";
}
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值