C++笔记

C++笔记,第1张

对于c语言,去年进行了基础的学习,暑假学习了c++,也算是对c的一个复习。c++与c是有很多共同性的,因此在系统整理暑假学习的c++时,并不算面面俱到,仅将部分内容进行了分类整理,作为笔记方便后续查阅。


#include 
using namespace std;

头文件  在这个命名空间内声明了 istream 与 ostream 等 IO 类,同时在 std 内声明了 istream cin; 与 ostream cout; 这两个常用对象。

std 是标准库函数使用的命名空间,是 standard(标准)的缩写。using namespace std ,它声明了命名空间 std,后续如果有未指定命名空间的符号,那么默认使用 std,这样就可以使用 cin、cout、vector 等。

假设你不使用预处理 using namespace std;,就要加上 std::cin 或者 std::cout。:: 是作用域运算符,用于定位到 std 命名空间。

目录

输入输出

储存类说明符

与C的不同

static

extern

运算符的运算顺序

表格

口诀

位运算符的替代


输入输出

在C++中,cin 用于从控制台获取用户输入,cout 用于将数据输出到控制台。

cin 是输入流对象,cout 是输出流对象,它们分别可以用 >> 和 <<,是因为分别在其类中对相应运算符进行了重载。

储存类说明符 与C的不同

在c++中,从 C++ 17 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。而在C中,auto是自动储存变量的关键字,也就是申明一块临时的变量内存;register声明的变量是寄存器变量,是存放在CPU的寄存器里的。

static

‘在c++中,static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。

在 C++ 中,当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。

static运用举例:

#include 
#include
using namespace std;
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
	Sleep(10000);
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

运算结果:

extern

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

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

extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候,可以说是相当于两个文件之间的姻缘线,将其链接起来,让相同的变量和函数可以在不同文件中运用。

extern链接两个文件举例:

a.app:

#include 
using namespace std;
int count ;
extern void goust();//引用外部函数
 
int main()
{
   count = 5;
   goust();
}

 b.cpp:

输出

运算符的运算顺序 表格

后缀 

() [] -> . ++ - -  

从左到右 

一元 

+ - ! ~ ++ - - (type)* & sizeof 

从右到左 

乘除 

* / % 

从左到右 

加减 

+ - 

从左到右 

移位 

<< >> 

从左到右 

关系 

< <= > >= 

从左到右 

相等 

== != 

从左到右 

位与 

从左到右 

位异或 

从左到右 

位或 

从左到右 

逻辑与 

&& 

从左到右 

逻辑或 

|| 

从左到右 

条件 

?: 

从右到左 

赋值 

= += -= *= /= %=>>= <<= &= ^= |= 

从右到左 

逗号 

从左到右 

口诀

先算右一后左一              乘除加减移位比

与异或或位逻辑              三目赋值逗号稀

解释:①先算右面的一元运算符,后算左面的。

②乘除代表*/%,加减就是+和-,移位就是<<和>>,比就是比较运算符,注意比较运算符先算<、>、<=和>=这4个含不等号的,后算==和!=这两个。

③先算按位逻辑运算符,再算普通的逻辑运算符;按位逻辑运算符的顺序是&^|,逻辑运算符先算&&再算||,只是少了逻辑异或。

④先算三目运算符,再算赋值运算符,逗号运算符的优先级最低,所以说它“稀”。

位运算符的替代

对于位运算符,在特殊情况下,%可以用&来取代,从而提高程序的运算效率。对于运算的优化,有三个等价的情况——

%1==&1

%4==&3

%8==&7

&将其化为二进制再进行计算,而并非十进制数直接参与运算。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2991746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存