admin管理员组

文章数量:1027805

【C++】C++成为大神的登神长阶【入门篇(2/100)】

这一篇我们来学习两个入门知识点

  • C++的输入输出流
  • 引用 这两个是C++入门的开篇知识点,对于理解C++代码是很必要的知识点 其他入门知识点请访问:C++入门知识和起源

C++的输入输出流

  • < iostream> 是InputOutputStream的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输出对象。
  • std::cin 是istream类的对象,它主要⾯向窄字符(narrowcharacters(oftypechar))的标准输⼊流。
  • std::cout 是ostream类的对象,它主要⾯向窄字符的标准输出流。
  • std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换⾏字符加刷新缓冲区。
  • <<是流插⼊运算符,>>是流提取运算符。(C语⾔还⽤这两个运算符做位运算左移/右移)
  • 使⽤C++输⼊输出更⽅便,不需要像printf/scanf输⼊输出时那样,需要⼿动指定格式,C++的输⼊ 输出可以⾃动识别变量类型
  • ⼀般⽇常练习中我们可以usingnamespacestd,实际项⽬开发中不建议usingnamespacestd。

输入输出流的代码实践

代码语言:javascript代码运行次数:0运行复制
#define _CRT_SECURE_NO_WARNINGS 1
 #include <iostream>
 using namespace std;
 int main()
{
 int a = 0;
 double b = 0.1;
 char c = 'x';
 cout << a << " " << b << "  " << c << endl;//面向窄字符的标准输出流,和std库中的一个函数
 std::cout << a << " " << b << "  " << c << std::endl;//不用手动指定输出格式,C++输入输出可以自动识别
 scanf("%d%lf", &a, &b);
 printf("%d %lf\n", a, b);
  return 0;
}

引用

引用的格式和特征

  • 引用概念:

  • 公用一块空间
  • 取别名
  • 引用的格式:

类型&引用别名=引用对象

代码语言:javascript代码运行次数:0运行复制
int a=0;
int &b=a;//这里相当于b和c是a的别名
int &c=a
int &d=b//也可以跟别名b去别名,d相当于还是a的别民航
//这里取地址,我们会发现,地址都是一样的
cout<<&a<<endl;
cout<<&b<<endl;
cout<<&c<<endl;
cout<<&d<<endl;

  • 引用的特性
    • 引用在定义的时候必须初始化
    • 不初始化就会报错

  • 引用一旦引用一个实体,就不能再引用其他实体
代码语言:javascript代码运行次数:0运行复制
int &b=a;
int &c=a
int &d=b
int e=20;
d=e//这里并非让d引用e,这里是一个赋值,因此C++引用不能改变指向

-引用不能代替指针!!!!

  • 因为不能改变指向
  • 设置引用不是为了代替指针,而是为了辅助指针
  • 引用的使用
代码语言:txt复制
- 应用的真实场景(实践)      
    - 减少拷贝(传参和传返回值)
代码语言:txt复制
- 如果把aa1拷贝给aa,会有四千个字节需要拷贝      
    - 如果在这里用引用,会减少拷贝
    - 引用做返回值
    - 如果不加引用对数据进行修改的时候,会报错
  • 问题引出:我们将函数返回的值,在主函数进行修改的时候,发现无法修改数据,编译器会报错?为什么呢?
    • 如果不是引用返回,返回的数据先给一个临时对象,值先拷贝给临时对象上面,进行操作时候,对临时空间进行操作
代码语言:txt复制
-  解决方法:
代码语言:txt复制
-  如果不是引用返回,返回的数据先给一个临时对象,值先拷贝给临时对象上面,进行操作时候,对临时空间进行操作
代码语言:txt复制
-  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-28,如有侵权请联系 cloudcommunity@tencent 删除入门数据c++对象函数

【C++】C++成为大神的登神长阶【入门篇(2/100)】

这一篇我们来学习两个入门知识点

  • C++的输入输出流
  • 引用 这两个是C++入门的开篇知识点,对于理解C++代码是很必要的知识点 其他入门知识点请访问:C++入门知识和起源

C++的输入输出流

  • < iostream> 是InputOutputStream的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输出对象。
  • std::cin 是istream类的对象,它主要⾯向窄字符(narrowcharacters(oftypechar))的标准输⼊流。
  • std::cout 是ostream类的对象,它主要⾯向窄字符的标准输出流。
  • std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换⾏字符加刷新缓冲区。
  • <<是流插⼊运算符,>>是流提取运算符。(C语⾔还⽤这两个运算符做位运算左移/右移)
  • 使⽤C++输⼊输出更⽅便,不需要像printf/scanf输⼊输出时那样,需要⼿动指定格式,C++的输⼊ 输出可以⾃动识别变量类型
  • ⼀般⽇常练习中我们可以usingnamespacestd,实际项⽬开发中不建议usingnamespacestd。

输入输出流的代码实践

代码语言:javascript代码运行次数:0运行复制
#define _CRT_SECURE_NO_WARNINGS 1
 #include <iostream>
 using namespace std;
 int main()
{
 int a = 0;
 double b = 0.1;
 char c = 'x';
 cout << a << " " << b << "  " << c << endl;//面向窄字符的标准输出流,和std库中的一个函数
 std::cout << a << " " << b << "  " << c << std::endl;//不用手动指定输出格式,C++输入输出可以自动识别
 scanf("%d%lf", &a, &b);
 printf("%d %lf\n", a, b);
  return 0;
}

引用

引用的格式和特征

  • 引用概念:

  • 公用一块空间
  • 取别名
  • 引用的格式:

类型&引用别名=引用对象

代码语言:javascript代码运行次数:0运行复制
int a=0;
int &b=a;//这里相当于b和c是a的别名
int &c=a
int &d=b//也可以跟别名b去别名,d相当于还是a的别民航
//这里取地址,我们会发现,地址都是一样的
cout<<&a<<endl;
cout<<&b<<endl;
cout<<&c<<endl;
cout<<&d<<endl;

  • 引用的特性
    • 引用在定义的时候必须初始化
    • 不初始化就会报错

  • 引用一旦引用一个实体,就不能再引用其他实体
代码语言:javascript代码运行次数:0运行复制
int &b=a;
int &c=a
int &d=b
int e=20;
d=e//这里并非让d引用e,这里是一个赋值,因此C++引用不能改变指向

-引用不能代替指针!!!!

  • 因为不能改变指向
  • 设置引用不是为了代替指针,而是为了辅助指针
  • 引用的使用
代码语言:txt复制
- 应用的真实场景(实践)      
    - 减少拷贝(传参和传返回值)
代码语言:txt复制
- 如果把aa1拷贝给aa,会有四千个字节需要拷贝      
    - 如果在这里用引用,会减少拷贝
    - 引用做返回值
    - 如果不加引用对数据进行修改的时候,会报错
  • 问题引出:我们将函数返回的值,在主函数进行修改的时候,发现无法修改数据,编译器会报错?为什么呢?
    • 如果不是引用返回,返回的数据先给一个临时对象,值先拷贝给临时对象上面,进行操作时候,对临时空间进行操作
代码语言:txt复制
-  解决方法:
代码语言:txt复制
-  如果不是引用返回,返回的数据先给一个临时对象,值先拷贝给临时对象上面,进行操作时候,对临时空间进行操作
代码语言:txt复制
-  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-28,如有侵权请联系 cloudcommunity@tencent 删除入门数据c++对象函数

本文标签: CC成为大神的登神长阶入门篇(2100)