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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!