c++数据类型、修饰符、变量、常量、存储类

cpp中typedef定义数据类型别名(为一个已有的类型定义一个新名字)。
atof()将ASCII字符串转为相应的单精度浮点数。
atoi()将ASCII字符串转为整型。
变量的作用域:

  • 在一个函数内部定义的变量,称为局部变量。
  • 在一个函数的参数定义的变量,称为形式参数。
  • 在所有函数外面定义的变量称为全局变量。

定义常量:#define;const关键字;
typedef修饰的变量是指针常量,指针p是一个常量,指针的指向不可以修改,但是指针指向的常量可以修改。
#define修饰的常量p指向的内容不可以更改,但是指针的指向可以更改。

整型常量可以是八进制、十进制、十六进制;后缀是U或者L表示无符号整数,L表示长整型;可以是大写也可以是小写。
基本数据类型有七种:bool,int,char,wchar_t,float,double,void;
数据类型修饰符:signed,unsigned,long,short
signed,unsigned,long,short可以修饰整型;signed和unsigned可以修饰字符型;long可以修饰双精度。
存储类:

  • auto声明函数时函数返回值的占位符。
  • register存储类定义在存储器而不是RAM中的局部变量,变量的最大大小等于寄存器的大小,对他不能应用一元的“&”运算符,因为他没有内存位置。寄存器只用于快存快取的数据,比如计数器;定义register并不是意味着这个变量一定在寄存器中存储,而是可能在寄存器中存储。
  • static存储类意味着在程序的生命周期内保持局部变量的存在。用static修饰的局部变量可以在函数调用之间保持局部变量的值;修饰全局变量的时候会限制它的作用域在声明它的文件内;当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。
  • extern用于提供一个全局变量的引用,全局变量对所有程序文件都是可见的。当使用extern时,如果这个变量无法初始化的时候,会把变量指向之前定义过的存储位置。extern常用于有两个或者多个类共享相同全局变量或者函数的时候。
  • mutable 仅适用于类的对象,允许对象的成员代替常量。
  • thread_local 可以与extern和static合并,声明的变量仅可在其上创建的线程上使用,在创建线程时创建,在线程销毁时销毁。每个线程都有自己的变量副本。

dynamic_cast实现类型转换(基类指针或者引用转换为继承类指针),用于父类和子类之间,但是容易产生错误,用在虚函数之间就不会,虚函数是实现多态的机制。虚函数是通过一张虚函数表来实现的,这张表主要是一个类的虚函数的地址表,解决了继承覆盖的问题。子类到父类使用,父类到子类则会产生错误。dynamic_cast应用的范围比一般的强转范围要更小一些,只能用于指针或引用的强转。
dynamic_cast<type_id>(expression) 把expression强转为type_id类型的对象。

->是一个运算符,左边是一个类对象的指针,右边是一个类的成员变量或者成员函数,类对象的指针用->来访问类的成员变量或者成员函数;类对象用 . 来访问类的成员变量或者成员函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值