《C++ Primier》学习笔记

《C++ Primier》学习笔记前言由于突然决定考研 所以学习编程语言的进度就停下了

大家好,欢迎来到IT知识分享网。

前言

第二章 变量和基本类型

变量

在C++中,初始化和赋值是两种完全不同的操作。初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。

列表初始化

C++11初始化新标准

int a=0; 等价于 int a={0}; 等价于int a{0}; 等价于int a(0);

变量的声明与定义

  • 声明:使得变量被程序所知
  • 定义:创建与名字相关联的实体
extern int i; //声明但不定义变量 int j; //声明并且定义变量 

引用

int i=7; 

我们可以为i声明一个引用变量r,从此r就是用来代替i的存在

int& r = i 
int &a=10; //错误! 

指针

 int i=7; int *r=&i; cout<<"The value of *r is :"<<r<<endl; cout<<"The address of i is:"<<&i; } 

输出结果是:

The value of *r is :0x7ffe12f42c64
The address of i is:0x7ffe12f42c64

可以看到,此时r存放的值就是i的地址

如果指针指向了一个对象 我们用 * 操作符来进行解引用,也就是访问指针所指向的对象,如果这时候该对象已经被赋值,那么对指针进行解引用则会得到对象的值。

int i=7; int *r=&i; cout<<"the value of i is "<<*r; 

结果:the value of i is 7

对于指针的赋值操作,我们就照搬书上的例子了:

int i=42; int *pi=0;//pi被初始化,但是没有指向任何对象 int *pi2=&i; //pi2被初始化,存有i的地址 int *pi3; pi3=pi2; //pi3和pi2指向同一个对象i pi2=0; //现在pi2不指向任何对象了 
空指针

const限定符

const与引用有些相似,都比较“深情”,也就是说一旦声明了const变量的值就无法更改。任何试图为这个变量赋值的行为都会引发错误。而且声明一个const变量必须进行初始化,

const int a=10; 

指针和引用的区别

通俗的话讲,对于引用来说,它更具有“使命感”。它生下来就是要成为某个对象的附属品的,因此无法让他代表别的对象,它本身不是对象,只是一个工具。而指针本身是对象,它可以随时通过操作来改变所指向的对象。

引用从一而终,指针随时变心。

auto类型说明符

例如:

auto a=1; auto s="Theshy"; cout<<"a="<<a<<endl; cout<<"s="<<s<<endl; 

程序会输出a=1 s=Theshy

for(auto obj:a) cout<<obj<<endl; 

最后会成功输出数组的这五个数

但是,如果用obj来对数组进行操作的话,数组不会改变

 int a[5] = { 
    1,2,3,4,5 }; for (auto obj : a) { 
    obj *= 5; cout << obj <<" " ; } cout << endl; for (int i = 0; i < 5; i++) { 
    cout << a[i] << " "; } cout << endl; 

最后输出:

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129220.html

(0)
上一篇 2025-08-25 20:10
下一篇 2025-08-25 20:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信