个人编程总结细节

强制转换:

//C风格强制转换

     //(typeName)value

     chara = '1';

     (int)a;

     //C++风格强制转换

     //tpeyName(value)

     chara = '1';

     int(a);

 

     //c++新标准;

     //static_cast<TypeName>(value) 

         chara = '1';

     static<int>(a);

 

sizeof(int)这个并不一定就是2,不同的操作系统,对Int分配字节数不一样;之前Int一般 占用2个字节,long int 占用4个字节;

但是目前随着64位OS的普及,int占用4个字节。

 

 

 

字符串:

     char  a[5]={'1','2','3','4','5'};//这个只能看做是字符数组;

     char  a[6]={'1','2','3','4',,'5','\0'};//最后一个添加了结束符,所以是字符串;

 

     chara='s';//a仅仅只有一个字节

     char*a="s";//a是指针,但其指向的可以说是一个字符串数组,有两个字符,一个字符s,一个结束符;

 

     cin输入流以空格,回车,制表作为字符串输入结束的标志;

         “adcd and c”

         cin<<a; a 中只有adcd;

 

     cin.get()返回一个cin对象;

         cin.get().get();理论上可以无限制;

    

c++中两个下划线或者下划线和大写字母开头的名称被用作保留资源使用。所以,代码中最好不要使用这些,避免冲突;

oct ,hex也最好不要用作变量名。Std中已经有std::hex,如果已使用using namespace std:

那么后面的代码段中hex就不能用作变量名了,会造成看不见的错误;oct亦然;

 

溢出问题:

 

unsigned char  i = 0;

     for(;i<500;i++)

     {

         printf("%d",i);

     }

定义的i是unsigned char其取值范围是0-255,如果到了255,再一次加1,那么回到了原点0,所以上述程序是个死循环,无法结束;

 

如果是int I;(int 占用2字节情况)

那么其取值范围是:-32767-32767

int i = 0;

     for(;i<32769;i++)

     {

         printf("%d",i);

     }

如果i值自增到了32767,在一次加1,那么就到了重置点,其值不是32768,而是-32767,可以理解为又重新开始数了。

Unsigned int I = 0;

无符号的类型其取值范围是0-65535,65535是重置点;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值