C++基础变量

变量

变量的基本形式是:首先是类型说明符,随后紧跟有一个或者多个的变量名组成的列表,其中含有多个变量名时用逗号隔开,最后以分号结束。

int sum = 0;
string first_name,last_name;

变量命名规范: (1)变量名称一般用小写字母 (2)自定义的类名一般首字母大写 (3)如果变量名由多个单词组成,则单词之间最好有明显区分

引用

引用是为对象起了另外一个名字,所有引用并不是对象,它只是一个已经存在的对象所起的另外一个名字,通过声明为&的形式定义引用类型。

    Student student("baxiang",26);
    Student &refStudent = student;
    student.show();
    refStudent.show();

声明为引用的变量必须初始化,但是初始化的值必须是一个对象。

 string &rName = "test1";// 错误

一般在初始化的时候,初始化值会被拷贝到新建的对象中,引用对象和被引用对象的的初始化在一起,而不是拷贝一个新的初始化给引用,也就是引用是和被引用对象共用一块内存地址。

    string name = "test";
    string &rName = name;
    string &othName = rName;

指针

与引用类似,指针也同样实现了对其他对象的一个间接访问,定义指针的方式是在变量前面在上星号*;

int *value,*result;
float *height;

指针存放的是对象的地址信息,要想获取对象的地址需要使用取地址符&

string test = "test";
string *testPoint = &test;

如果指针指向了一个对象,需要通过解引用符号(*)来访问当前指向的对象

 cout << *testPoint<<endl;

const限定符

我们有时候希望我们定义的变量的值不能被修改,为了满足这个需求,我们可以使用关键字const对变量类型进行限制

    const int buffSize = 1024;
    buffSize = 512;//错误, 无法修改 

在程序编译的时候遇到const变量会对用到该变量的地方都替换成对应的值,也就是编译器会找到用到buffSize的地方然后用1024替换掉。 默认情况下,const变量被设定为仅在文件内有效,当多个文件中出现同名的const变量的时候,其实会在不同文件中分别定义独立的const变量。如果需要实现文件共享,这种情况我们不希望编译器为每个文件都生成独立的变量,即在一个文件中声明其他文件都可以使用。解决的办法就是在const变量不管在声明还是在定义都需要加上关键字extern.

extern const int buffSize = 1024 // 在file_1.cpp 初始化一个常量
extern const int buffSize // 在file_1.h 只能够定义常量

static静态成员

静态数据成员在定义或说明时前面加关键字static。 静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:

     <数据类型><类名>::<静态数据成员名>=<值>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go基础——字符串

    字符串结构由两个信息组成:第一个是字符串指向的底层字节数组,第二个是字符串的字节的长度。字符串其实是一个结构体,因此字符串的赋值操作也就是reflect.Str...

    羊羽shine
  • Golang包——io

    Reader 接口包装了基本的 Read 方法,用于输出自身的数据。Read 方法用于将对象的数据流读入到 p 中,返回读取的字节数和遇到的错误。 如果读到了...

    羊羽shine
  • C++基础字符串

    string类提供了向前和向后遍历的迭代器iterator,迭代器提供了访问各个字符的语法,类似于指针操作,迭代器不检查范围。用string::iterator...

    羊羽shine
  • C++primer笔记之关联容器

    在这一章中,有以下的几点收获: 1、pair类型的使用相当频繁,如果需要定义多个相同的pair类型对象,可考虑利用typedef简化其声明: typedef p...

    CloudDeveloper
  • IDEA + maven 零基础构建 java agent 项目

    Java Agent(java 探针)虽说在 jdk1.5 之后就有了,但是对于绝大多数的业务开发 javaer 来说,这个东西还是比较神奇和陌生的;虽说在实...

    一灰灰blog
  • 【新手笔记】关于Split方法

    Split,把一个字符串分割成字符串数组。 以前是做C#的,前段时间做安卓开发,用了一下Split方法,发现分割后的长度比预期的少,检查了一下,发现java中的...

    企鹅号小编
  • 基础知识 | 每日一面(67)

    小林:这样做是合法的。但是, 现代的做法是在声明和定义的时候都是用原型形式。旧式的语法被认为已经废弃, 所以某一天对它的官方支持可能会取消。

    闫小林
  • python初学之一

    一、实现一个函数isDuplicate(s),接受一个字符串,判断这个符串是否含有重复的字符,如果有的话函数返回True,没有的话返回False

    py3study
  • 【IoT迷你赛】在中移动标准板上利用tos实现GPS追踪器

    因为收到的TencentOS tiny内测开发板只有ESP8266,利用WiFi来实现GPS跟踪有点不太现实。而最近正好从中移动手里薅了一个标准开发板(如下图)...

    kernel
  • 黑遍全世界,让全球互联网崩溃的美国前大学生认罪

    面对参与制造电脑病毒引起全世界互联网在2016年10月崩溃的指控,新泽西州罗格斯大学(Rutgers University)一名前学生星期三在特伦顿(Trent...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券