C/C++:const与static

指向const型变量的指针变量

const 类型名 *指针变量名:const char *ptr;

1、const型变量只能用指向常变量类型的指针变量指向它

2、const关键字声明的变量,无论是对象还是基本变量,都是受保护的,其内容是不能被修改的,这是一个大原则。

3、一旦一个指针变量指向了一个const声明的变量(const型变量只能用指向常变量类型的指针变量指向它),那么就不能通过指针来改变此变量的值,总体一个原则:指针变量可以改变指向,但不能改变指向的内容。

4、指向const型变量的指针变量,其级别要高一些,可以将非const型的指针变量赋给const型指针变量(反之则不成立),但不能通过const型指针变量来改变此变量所代表的内容,总而言之:const型指针变量可以改变指向,但不能改变指向的内容。

static声明的数据成员与const声明的数据成员的区别

1、static是为了共享数据,而const是为了保护数据不被改变

2、static数据成员不是属于某一个对象的,而是属于类的。既可以通过对象名引用,也可以通过类名来引用。

3、静态数据成员在内存中只占一份空间,而不是为每个对象都分别为他保留一份空间,静态数据成员是在所有对象之外单独开辟空间,它可以被引用。静态数据成员是在程序编译时被分配空间的,到程序结束时才释放空间

4、静态数据成员可以初始化,但只能在类体外进行初始化。不能用参数初始化表对静态数据成员初始化

5、如果未对静态数据成员赋初值,则编译系统会自动赋予初值0。

static声明的成员函数与const声明的数据成员的区别

1、静态成员函数的作用不是为了对象之间的沟通,而是为了能够处理静态成员

2、静态成员函数并不属于某一个对象,它与任何对象都无关,因此静态成员函数没有this指针,因此不能默认的访问本类对象。

3、静态成员函数可以默认访问本类的静态数据成员,静态成员函数就是专门为了访问静态数据成员而设计的。

4、如果一定要使静态成员函数来访问本类的非静态数据成员,需要在静态成员函数的参数列表中声明本类作为形参,然后将本类对象作为实参传递到静态成员函数中,然后通过对象的引用来访问非静态数据成员。

5、程序设计过程中,不提倡用静态成员函数来访问非静态数据成员!!!

5、(类名+ ::):利用作用域限定符,来限制某个函数,某个静态变量属于某个类。这个符号具有通用性,即:表示限定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值