c++的学习之路:4、入门(3)

简介: c++的学习之路:4、入门(3)

一、auto

这个关键字是c++提出的,可以自动识别变量的类型,可以看出下方图片,auto自动识别变量类型,a是指针就识别出了指针,a就是指针类型的,b和a一样,但是在auto后面接上*就只可以是指针类型的,同理接上&后就只能是引用了,但是要注意这个关键字后面需要有初始化的变量,不能作为函数的形参和初始化数组。

二、for

这个是c++在c语言的基础上改编而来的,直接上代码对比吧,如下图这个for就可以配合上面说的auto使用,可以直接用:分割打印,不需要和传统的for一样使用,但是需要注意的是这个for循环迭代的范围必须是确定的 对于数组而言,就是数组中第一个元素和最后一个元素的范围;对于类而言,应该提供 begin和end的方法,begin和end就是for循环迭代的范围。

三、指针空值

指针空值这个就是在c++创建时有点小BUG就是NULL是0,就是他不是一个指针的值了,在函数重载时匹配的是0,不是指针了,而这时在2011年nullptr作为补丁引入,区别如下图特别明显。

四、代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
 
//int main()
//{
//  int x = 10;
//  auto a = &x;
//  auto* b = &x;
//  auto& c = x;
//  cout << typeid(a).name() << endl;
//  cout << typeid(b).name() << endl;
//  cout << typeid(c).name() << endl;
//  return 0;
//}
 
//int main()
//{
//  int arr[] = { 1,2,4,4,56,2,78,2 };
//  for (int i = 0; i < sizeof(arr) / sizeof(int); i++)
//  {
//    cout << arr[i] << " ";
//  }
//  cout << endl;
//  for (auto j:arr)
//  {
//    cout << j << " ";
//  }
//  cout << endl;
//  return 0;
//}
 
void test(int)
{
  cout << "test(int)" << endl;
}
void test(int*)
{
  cout << "test(int*)" << endl;
}
int main()
{
  test(0);
  test(NULL);
  test(nullptr);
  return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
 
//int main()
//{
//  int a = 0;
//  int& b = a;
//  int& c = b;
//  int& d = a;
//  cout << &a << endl;
//  cout << &b << endl;
//  cout << &c << endl;
//  cout << &d << endl;
//  return 0;
//}
 
//int& ly(int a,int b)
//{
//  static int c;
//    c= a + b;
//  return c;
//}
//
//int main()
//{
//  int ret = ly(1, 2);
//  cout << ret << endl;
//  return 0;
//}
//#include <time.h>
//struct A { int a[10000]; };
//void test1(A a) {}
//void test2(A& a) {}
//void test3()
//{
//  A a;
//  size_t begin1 = clock();
//  for (size_t i = 0; i < 100000; ++i)
//    test1(a);
//  size_t end1 = clock();
//  size_t begin2 = clock();
//  for (size_t i = 0; i < 100000; ++i)
//    test2(a);
//  size_t end2 = clock();
//  cout << end1 - begin1 << endl;
//  cout << end2 - begin2 << endl;
//}
//
//int main()
//{
//  test3();
//  return 0;
//}
 
inline int ADD(int a, int b)
{
  return a + b;
}
 
inline int ADD1(int a, int b, int c)
{
  c = a + b;
  a = a + b;
  b = a + b;
  c = a + b;
  a = a + b;
  b = a + b;
  c = a + b;
  a = a + b;
  b = a + b;
  c = a + b;
  a = a + b;
  b = a + b;
  c = a + b;
  a = a + b;
  b = a + b;
  c = a + b;
  a = a + b;
  c = a + b;
  b = a + b;
  return c;
}
int main()
{
  int ret = ADD(1, 3);
  int ret1 = ADD1(1, 3,2);
  return 0;
}

五、思维导图


目录
相关文章
|
3月前
|
存储 安全 编译器
c++入门
c++作为面向对象的语言与c的简单区别:c语言作为面向过程的语言还是跟c++有很大的区别的,比如说一个简单的五子棋的实现对于c语言面向过程的设计思路是首先分析解决这个问题的步骤:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。但对于c++就不一样了,在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象:(1)黑白双方,这两方的行为是一样的。(2)棋盘系统,负责绘制画面。
44 0
|
7月前
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
6月前
|
存储 分布式计算 编译器
C++入门基础2
本内容主要讲解C++中的引用、inline函数和nullptr。引用是变量的别名,与原变量共享内存,定义时需初始化且不可更改指向对象,适用于传参和返回值以提高效率;const引用可增强代码灵活性。Inline函数通过展开提高效率,但是否展开由编译器决定,不建议分离声明与定义。Nullptr用于指针赋空,取代C语言中的NULL。最后鼓励持续学习,精进技能,提升竞争力。
|
8月前
|
C++ 开发者
C++学习之继承
通过继承,C++可以实现代码重用、扩展类的功能并支持多态性。理解继承的类型、重写与重载、多重继承及其相关问题,对于掌握C++面向对象编程至关重要。希望本文能为您的C++学习和开发提供实用的指导。
130 16
|
9月前
|
算法 网络安全 区块链
2023/11/10学习记录-C/C++对称分组加密DES
本文介绍了对称分组加密的常见算法(如DES、3DES、AES和国密SM4)及其应用场景,包括文件和视频加密、比特币私钥加密、消息和配置项加密及SSL通信加密。文章还详细展示了如何使用异或实现一个简易的对称加密算法,并通过示例代码演示了DES算法在ECB和CBC模式下的加密和解密过程,以及如何封装DES实现CBC和ECB的PKCS7Padding分块填充。
186 4
2023/11/10学习记录-C/C++对称分组加密DES
|
11月前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
123 2
C++入门12——详解多态1
|
11月前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
333 6
|
11月前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
162 1
|
11月前
|
存储 C++ 容器
C++入门9——list的使用
C++入门9——list的使用
89 1