C++ PRIMER 笔记

第二章  变量和基本类型

 

C++标准规定每个算数类型的最小存储空间 char 8位,int 16,long 32;float 6位有效数字(一般32bit),double 10位有效数字(一般64bit)

 

unsigned int 可以简写为unsigned

 

字符串字面值连接不需要+号,例如cout<<"hello""world"<<endl;

 

初始化不是赋值,初始化创建变量并给他赋初值,赋值擦除对象的当前值并用新值代替(前者调用复制构造函数,后者使用赋值操作符)

 

函数体外定义的变量系统根据类型自动初始化,函数体内的变量未定义.(函数外的string对象值为"",java中String值为null)

 

定义分配存储空间,声明向程序表名变量的名字和类型;声明变量用extern 可声明多次.但用extern修饰的变量指定初值的话算作定义

 

块内的名称会屏蔽外围名字(包括变量名和函数名),java同名变量会报错,变量和函数互不干扰

 

const定义时必须显式初始化

 

引用必须用同类型的对象初始化,之后不可绑定到其他对象

 

非const引用不可绑定其他类型的变量(因为存在中间转换),也不可初始化为右值.

 

1,typedef #define 的不同

#define是定义了一个宏,宏是单纯的代码替换
#define pStr2 char *;
首先#define语句后面用分号结尾是不合适的,因为这样会在所有出现pStr2的地方用"char *;"(不包括引号)来代替
譬如
#define pStr2 char *;
pStr2 s3,s4;//相当于char *; s3,s4;因为多了个分号,编译时会报错
所以写成#define pStr2 char *是合适的

其次,即使写成了
#define pStr2 char *
pStr2 s3,s4;//相当于char * s3,s4; 这样的定义中,s3是char *类型的,而s4是char类型的,如果2个都要是char *类型的,必须写成
char * s3,* s4;
或者
char * s3;//pStr2 s3;
char * s4;//pStr2 s4;

而typedef char *pStr1;(这个分号不能省略)的作用是将pStr1定义成等价于char *的类型,相当于char *的别名
pStr1 s1,s2;就等价于
char *s1,*s2;
也等价于
char *s1;//pStr1 s1;
char *s2;//pStr1 s2;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值