数据类型

  1. 枚举类型
enum color { red, green, blue } colors;
colors = blue;

默认情况下,第一个名称的值是 0,后面的依次加 1。也可以自定初始值:

enum color { red, green = 5, blue };

在这里,blue 的值为 6 。

变量类型

  1. 变量声明

    使用多个文件且只在一个文件中定义变量时(定义变量的文件在程序连接时是可用的),可以使用 extern 关键字在任何地方声明一个变量。虽然您可以在 C++ 程序中多次声明一个变量,但变量只能在某个文件、函数或代码块中被定义一次。
#include <iostream>
using namespace std; // 变量声明

extern int a, b;

extern int c;

extern float f; int main ()

{

// 变量定义

int a, b;

int c;

float f;
<span class="hljs-comment">// 实际初始化</span>
a = <span class="hljs-number">10</span>;
b = <span class="hljs-number">20</span>;
c = a + b; <span class="hljs-built_in">cout</span> &lt;&lt; c &lt;&lt; <span class="hljs-built_in">endl</span> ; f = <span class="hljs-number">70.0</span>/<span class="hljs-number">3.0</span>;
<span class="hljs-built_in">cout</span> &lt;&lt; f &lt;&lt; <span class="hljs-built_in">endl</span> ; <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;

}

同样,在函数声明时,提供一个函数名,而实际定义可以在任意地方进行。

// 函数声明
int func(); int main()

{

// 函数调用

int i = func();

} // 函数定义

int func()

{

return 0;

}

修饰符类型

  1. 类型限定符
限定符 含义
const const 类型的对象在程序执行期间不能被修改改变。
volatile 修饰符 volatile 告诉编译器,变量的值可能以程序未明确指定的方式被改变。
restrict 由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。

存储类

  1. auto 存储类

    • auto 存储类是所有局部变量默认的存储类。
  2. register 存储类

    • register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。
  3. static 存储类

    • static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。
    • static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
    • 在 C++ 中,当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。
  4. extern 存储类

    • extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当使用 extern 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。

    • 当有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。例:

      // main.cpp
      int count ;
      extern void write_extern(); int main()

      {

      count = 5;

      write_extern();

      }

      // support.cpp
      #include <iostream> extern int count; void write_extern(void)
      {
      std::cout << "Count is " << count << std::endl;
      }
  5. mutable 存储类

    • mutable 说明符仅适用于类的对象。它允许对象的成员替代常量。也就是说,mutable 成员可以通过 const 成员函数修改。

引用

  1. 创建引用

    int i = 17;
    int &r = i;

    & 读作引用。因此,第一个声明可以读作 "r 是一个初始化为 i 的整型引用",第二个声明可以读作 "s 是一个初始化为 d 的 double 型引用"。

  2. 引用调用

    #include <iostream>
    using namespace std; // 函数声明

    void swap(int &x, int &y); int main ()

    {

    // 局部变量声明

    int a = 100;

    int b = 200; cout << "交换前,a 的值:" << a << endl;

    cout << "交换前,b 的值:" << b << endl; /* 调用函数来交换值 */

    swap(a, b); cout << "交换后,a 的值:" << a << endl;

    cout << "交换后,b 的值:" << b << endl; return 0;

    } void swap(int &x, int &y)

    {

    int temp;

    temp = x; /* 保存地址 x 的值 /

    x = y; /
    把 y 赋值给 x /

    y = temp; /
    把 x 赋值给 y */ return;

    }

基本输入输出

  1. 标准错误流(cerr)

    • 预定义的对象 cerr 是 ostream 类的一个实例。cerr 对象附属到标准错误设备,通常也是显示屏,但是 cerr 对象是非缓冲的,且每个流插入到 cerr 都会立即输出。
  2. 标准日志流(clog)
    • 预定义的对象 clog 是 ostream 类的一个实例。clog 对象附属到标准错误设备,通常也是显示屏,但是 clog 对象是缓冲的。这意味着每个流插入到 clog 都会先存储在缓冲在,直到缓冲填满或者缓冲区刷新时才会输出。
      </div>

C++ 快速入门笔记:基本语法的更多相关文章

  1. C#快速入门笔记(1)——基础语法

    C#快速入门笔记(1)——基础语法 总体框架:

  2. keras搭建神经网络快速入门笔记

    之前学习了tensorflow2.0的小伙伴可能会遇到一些问题,就是在读论文中的代码和一些实战项目往往使用keras+tensorflow1.0搭建, 所以本次和大家一起分享keras如何搭建神经网络 ...

  3. C++ 快速入门笔记:进阶编程

    C++入门笔记:高级编程 文件和流 打开文件 void open (const char *filename, ios::openmode mode); ios::app 追加模式.所有写入都追加到文 ...

  4. Pandas快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型或标签型数据结构的Pandas的使用方法.下面记录相关学习笔记. 数据结构 Panda ...

  5. NumPy快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下NumPy这个科学计算库的使用方法.下面记录相关学习笔记. 简介 NumPy是一个科学计算库.结合Py ...

  6. Spring Boot 快速入门笔记

    Spirng boot笔记 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...

  7. Matplotlib快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,快速了解了一下matplotlib绘图库.下图是我学习过程中整理的一些概念. 本文将以该图为线索梳理相关概念. 简介 ...

  8. [Python]Python入门笔记:语法基础

    Python笔记 一.基本语法 1.1 注释 文档注释: """contents""" 多行注释: ''' contents ''' 单行注 ...

  9. Velocity快速入门教程-脚本语法详解(转)

    1.变量 (1)变量的定义: #set($name = "hello")      说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引号中的字面字符串将解析 ...

随机推荐

  1. ZZUACM 2015 暑假集训 round 01

    A. Encoding Problem Description Given a string containing only 'A' - 'Z', we could encode it using t ...

  2. ubuntu14中 memcached安装与使用

    第一步,先安装lib-event 下载lib-event  的包http://libevent.org/ 下载完之后,解压安装 ./configure –prefix=/usr (或 ./config ...

  3. kafka同步生产者和异步生产者深入剖析

    什么是kafka同步生产者,什么是kafka异步生产者? 比如这里某个topic有3个分区. kafka同步生产者:这个生产者写一条消息的时候,它就立马发送到某个分区去.  kafka异步生产者:这个 ...

  4. OpenCV func

    cvLoadImage("lena.jpg", CV_LOAD_IMAGE_COLOR);  //CV_LOAD_IMAGE_GRAYSCALE   //0

  5. Android 最简洁的获取联系人头像的代码

    ContentResolver cr = view.getContext().getContentResolver(); Uri uri = ContentUris.withAppendedId(Co ...

  6. 函数的引用透明性(referential transparency)

    1. 基础 初学程序设计时,比较容易混淆的两个概念是数学函数(math function)和程序中使用的函数. 在数学函数中 y=f(x),一个输入值有固定的输出值.例如,无论计算多少次,sinπ 的 ...

  7. IIS服务器设置http自动跳转https方法

    很多站长在部署SSL证书后,网站实现https加密访问,但考虑到用户习惯了http访问,很多外链也是http访问形式,所以需要在IIS服务器配置http自动跳转https,避免用户通过http访问不到 ...

  8. 第三方插件将数据转成json

    1.需要使用第三方jar commons-beanutils-1.7.0.jar /commons-collections-3.1.jar/commons-lang-2.5jar /commons-l ...

  9. 学习redis--简介(一)

    1.什么是redis? Redis是使用c语言开发的一个高性能键值数据库.Redis通过键值类型来存储数据.它通过提供多种键值数据类型来适应不同场景的存储需求. 2.redis支持哪些数据类型 Key ...

  10. 微信浏览器跳转外部浏览器 app下载

    这个是摘抄的,具体抄的哪里我忘记了,作为记录 2019年5月14日 现在这个好像也不好用了,微信又提示建议下载qq浏览器什么的,显示一个红色感叹号,让用户产生怀疑,很鄙视tx error_report ...