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

2023-12-13 12:50:55

数据类型

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

文章来源:https://blog.csdn.net/weixin_47454452/article/details/134956877
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。