首页 > 编程语言 >C++ Primer 第五版

C++ Primer 第五版

时间:2023-08-01 09:45:31浏览次数:37  
标签:arr Primer 变量 指向 int C++ 第五版 表达式 指针

  • 当我们使用istream对象作为条件时,其效果是检测流的状态.
  • char:[-128,127].
  • C++ 17新增byte数据类型,在<cstddef>头文件中定义,取值范围:[0,255].
  • int和long都占用4字节空间.
  • 切勿混用带符号类型和无符号类型.
  • \后跟3位以内8进制数字,或\x后跟一个或多个16进制数字都可以代表字符.
  • 原始字符串:[R"(string)"] 或 [R"+*(string)+*"]
  • 初始化不是赋值,初始化是创建变量时赋予其一个初始值,赋值是把对象的当前值擦除,而以一个新值来替代.
  • 任何值,或值与运算符组合都是表达式,每个表达式都有一个值.表达式加分号称为语句,但语句去掉分号不一定是表达式,有些语句没有值.
  • 为了支持分离式编译,C++将声明和定义区分开来.声明规定了变量类型和名字,定义申请存储空间.变量能且只能被定义一次,但是可以被多次声明.
  • nullptr,0,NULL<cstdlib>都可以代表空指针.void*可以指向任意类型的变量,也可以是空指针.void*仅指向某个内存空间,无法访问内存空间中的变量.
  • 要在多个文件之间共享const变量,须在变量声明定义之前都添加extern关键字.
  • 常量引用可以指向常量对象,也可以指向非常量对象.非常量引用不能指向常量对象,只能指向非常量对象.指针也一样.
  • 常量表达式是指不会改变,并且在编译期间就能得到结算结果的表达式.
  • [&&:and] [!:not] [!=:not_eq] [||:or]
  • int arr[3]={1,2,3}; int* pt=arr; arr有双重含义:数组名和指向首元素的指针.sizeof(arr)代表数组占用空间12字节;sizeof(pt)代表指针变量占用空间,X86平台4字节,X64平台8字节.arr等同于&arr[0],与&arr数值相等,但一个代表首元素地址,一个代表数组地址.arr+1地址加4;&arr+1地址加12.
  • int (*parr)[3]= &arr:parr是指向含有三个整数元素数组的指针,类型为int(*)[3].*parr与数组名arr等价,与首元素指针arr不等价.(*parr)[0]代表数组首元素.
  • int * pn = new int; typeName * pointer_name = new typeName;
  • new与delete要配对使用.删除指针,代表释放指针指向的内存,但指针变量不会被删除,可以让指针变量指向另一块新分配的内存.
  • char t[3] = "ab";cout<<t;表示输出字符串"ab";cout<<(int*)t;输出地址.
  • 别名:typedef typeName aliasName;
  • cin.get()读取一个字符并返回int类型字符编码;cin.get(ch),读取一个字符存入ch变量,此处ch为引用参数.char name[size]; cin.get(name, size);表示连续读取字符,直到遇到'\0'或读取字符数目达到size-1.

标签:arr,Primer,变量,指向,int,C++,第五版,表达式,指针
From: https://www.cnblogs.com/kaling/p/17589634.html

相关文章

  • 【暑假例题】20230727 矩阵基本运算(C++)
    题目请使用C++实现矩阵的各种运算矩阵创建矩阵相加矩阵相减矩阵相乘数字乘矩阵矩阵上叠加矩阵左右叠加矩阵转置矩阵旋转矩阵求逆矩阵输出题目分析矩阵创建这里只需注意由于我们需要通过不同的函数对数组进行操作,所以我们需要将数组存储在容器或者使用指针防止数......
  • C++中不支持strdup(),使用_strdup()
    1.问题C4996 'strdup':ThePOSIXnameforthisitemisdeprecated.Instead,usetheISOCandC++conformantname:_strdup.Seeonlinehelpfordetails. Project1 G:\VS\Project1\Project1\MyString.cpp 802.原因错误C4996是一个编译器警告,它指示在代码中使用了一个......
  • c++11 call_once & once_flag
    #include<iostream>#include<mutex>usingnamespacestd;voidonce_fun(std::once_flag&&flag){std::call_once(flag,[](){cout<<"messagefromoncefun"<<endl;});}voidonce_fun1(s......
  • c++并发
    《c++并发编程第二版》,一方面翻译的挺拗口,一方面内容有点难度,看的很吃力,尤其到后面内存模型,无锁编程部分,看不下去了,仅记录部分内容。并发:采用任务切换的方式,一个任务运行一会在切换回另一个任务,在一个时间段内好像两个任务在同时进行并行:在多个CPU或多核CPU中同一时间多个任务同......
  • C++ | const的使用
    const基础用法用于声明一个不可再被修改的变量:constintnum=17;num=33; //Invalid,会报错用于指针首先,如果将一个指针用const声明为常量指针,那么这个指针的指向将不能被改变。但可以通过这个指针来修改被指向的对象:intdemo=17;int*constp=&demo; //......
  • C++ | 引用
    引用&使用引用intb=33,&a=b;b=17;cout<<a;//打印a为17使用引用声明变量类似于指针,声明的变量会同被引用的变量绑定,修改任何一方的数据都会使另一方的数据也改变。使用上的区别在于使用引用不需要*,引用可以理解为一个别名。在函数中使用引用传递参数将参......
  • C++ | 运算符重载
    运算符重载在类中的函数进行重载(成员函数)运算符重载用于重新定义运算符的作用,使用函数名称operatorOP作为函数名,其中OP为具体的运算符(如operator+)classTime{Timeoperator+(constTime&t);};Timea,b;Timec=a+b;在成员函数中重载的运算符,如+-等,默认左边......
  • C++初始化列表时,形参和实参名可以一样,编译器可以识别
    在这里初始化列表直接用age(age)即可,用this->age(age)反而会出错,C++不允许在成员初始化列表中使用this关键字来初始化类成员classPerson{public:Person(intage):age(age){}//Initializethe'age'memberdirectlyinthememberinitializerlistinta......
  • TreeCtrl 树的存储和还原 2, VC++
    TreeCrtl树的节点可以随意的添加,删除,移动。树保存到数据库中,并能从数据库读出还原。树节点的LPARAM存放ID,这个ID是数据表自增长主键。1.数据库中读出,按PID,SID顺序,这样读出的第一个为root2.读出的数据存入list3.创建root节点,把root放入map,从list中删除4.遍历list,pid,sid在map中找......
  • 从 C++到 Objective-C ----2
    从C++到Objective-C(7):继承简单继承Objective-C也有继承的概念,但是不能多重继承。不过,它也有别的途径实现类似多重继承的机制,这个我们后面会讲到。C++Objective-CclassFoo:publicBar,{}@interfaceFoo:Bar//单继承//如果要同时“继承”Wiz,需要使用......