C++笔记(一)

来源:互联网 发布:视频网站cms 编辑:程序博客网 时间:2024/06/07 01:53

1、注释:
    (1)  //  在其后面写注释内容,只限本行
    (2) /*   */  在其中间写注释内容,可以跨多行(C语言的写法)

2、函数调用时,是将实参复制给形参,而实参本身并不改变。

3、函数头有返回类型说明时,函数结束时要使用return返回。如果不需要返回,就在函数头声明为void,函数结束时也无需要return。

4、c程序经过编辑、编译、连接,最终形成exe文件。

5、变量代表其存储空间名。

6、数据类型分为:基本类型和非基本类型。
基本类型包括:整形 int 、字符型 char 、实型(单精度型 float、双精度型 double)、逻辑型 bool;
非基本类型包括:数组 [ ] 、指针 * 、空类型 void 、结构 struct 、联合 uoion 、类 class 、枚举 enum。
类型前面可以加上修饰符:long(长型)、short(短型)、unsigned(无符号型,即正数型)、signed(有符号型,即正负数型)

(注:本图为16位计算机情况) 类型 说明 字节长度 表示范围 char 字符型 1 -128~127 signed char 有符号字符型 1 -128~127 unsigned char 无符号字符型 1 0~255 int 整型 2 -32768~32767 signed int 有符号整型 2 -32768~32767 unsigned int 无符号整型 2 0~65536 short (int) 短整型 2 -32768~32767 signed short (int) 有符号短整型 2 -32768~32767 unsigned short (int) 无符号短整型 2 0~65536 long (int) 长整型 4 -2147483648~2147483647 signed long (int) 有符号长整型 4 -2147483648~2147483647 unsigned ling (int) 无符号长整型 4 0~4294967296 float 浮点型(单精度) 4 7位有效位 double 双精度型 8 15位有效位 long double 长双精度型 10 19位有效位

 

 

 

 

 

 

 

 

 

 

所占字节:char为1字节,int为2字节,只有long int 和 float 为4字节;double 为8字节,long double为10字节。

7、变量命名写法:
  (1)骆驼表示法,即两个单词构成时,第一个单词小写,后一个单词首字母大写,像驼峰一样,如myCar。
  (2)匈牙利表示法,在每个变量前加上若干表示类型的字符。如iMyCar表示整型变量,ipMyCar表示整型指针。

8、声明新类型 typedef
格式为: typedef 原类型名 新名
 
如 typedef double dbl;
      dbl a;
意思为:将double类型说明为dbl,然后定义一个double类型变量a。

9、整型常量表示时,
     (1) 8进制以0开头,如0123表示8进制的123,等于10进制的83;
     (2) 16进制表示时,以0X或0x开头,如0X123或0x123表示16进制的123,等于10进制的291。
     (3)  长整型表示时,在后面加上L或l,如123L或123l表示是长整型(long int)。

10、在C++中,一个实型常数如没有任何说明,默认为double型。
      如果要表示为float型,则要在其后加上F或f;
      如果要表示为long double型,则要在后面加上L或l。
      34.5                //double型
      34.5F              //float型
      34.5e23L      //long double型

11、字符常量。将一个字符常量赋值给字符变量,实际上是把该字符相应的ASCII(整型数)存入内存单元,而不是把该字符存入内存单元。
      如 char b = 'a' ;          //将a的ASCII码97存入字符变量b所在单元

因此,C++中字符数据和整型数据可以相互赋值。如
      int a = ' b ' ;                 //将字符b的ASCII码98赋值给a,使a的值为98
      char c = 97 ;              //将97对应的ASCII字符a赋给c,使c的值为a

12、字符串常量(双引号,以' /0' 结束)

字符常量与字符串常量的区别

字符常量

字符串常量

备注

用单引号括起来 用双引号括起来 ' a '是字符常量," a "是字符串常量 只是所见字符 在所见字符外,以' /0 ' 结束 ' a ' 在内存中只有a,占一个单元;" a "在内存中为 a ' /0 ' ,占两个单元 在内存中只占1个单元 在内存中为连续单元  

在输出时二者无区别

如'a' 和 "a" 输出结果都是a,而且输出格式也相同

 13、常量定义(const)
      如果想让一个变量(函数、对象等)内容不变,或防止别人改动,则可以把其定义为const,表示方法为:在其前面加上const。
      (1)定义成const后的常量,程序中只能读而不能改;
      (2)由于不可改,所以常量定义时必须初始化;
      (3)常量名不能作为左值。
      (4)在C++中尽量使用const,而不使用#define。

例:const int a ;
        a = 100;
错误,常量在定义时必须立即初始化。

14、表达式与语句
      (1)表达式加上分号后构成语句;
      (2)表达式由操作符、操作数和标点符号3部分组成;
      (3)空语句只由1个分号;   
     

15、操作符优先级与结合性(暂空)

16、左值与右值
      在表达式中,出现在赋值表达式左边的值为左值,左值可以存放变量,也可以改变其值;
      const因为不能改变其值,所以不能做左值,只可以做右值。

17、在运算过程中,最好先定义运算数类型,或强制转换类型后,再运算,以防止被系统自动隐含转换导致结果与预期不同。
      如:
      (1) 5/2            //未定义或转换,即把5和2都当作整数,结果也为整数,结果为2
      (2) 5.0/2         //隐含定义,即把5.0看作double,同样把2隐含转换为double,结果也为double,结果为2.5
      (3) 5/2.0         //同上
      (4) (float)5/2    //强制类型转换,即把5转换为float,同样把2隐含转换为float,结果也为float,结果为2.5
      (5) float(5/2)    //虽使用强制类型转换,但5/2在先,相除结果为2,然后再对2强制转换为float型,依然是2
      (6) float a=5;
           a
/2             //显式声明a为float,则在a/2中2也被隐含转换为float型,则结果为float型,结果为2.5

18、如操作数超出其数据类型表示范围时,会发生溢出,引起计算结果错误。在一般情况下,溢出后的结果为正常结果的补码。
      如: int we = 42896;
      在16位机器上将不能得到值42896,只有int有表示范围为-32768~32767,所以只能拿42896减去65536,得到的结果为42896的补码,即-22640

19、算术类型转换(总量向表达能力强的方向转换,即由短向长转换)
      char → int  ↘
                          double → long double 
               float ↗     

20、增量与减量
      ++a : 先将a+1,然后将变化后的值作为a的值;
      a++ : 先将a的值确定下来,然后再将a+1。

      如:
      int a=3;
      int b=++a;
      cout<<a<<b;           //结果为44

      int a=3;
      int b=a++;
      cout<<a<<b;           //结果为43

21、条件运算符 ? :
      (条件表达式) ? (条件为真时的表达式) : (条件为假时的表达式)
   如,(a) ? b : c  如a为真,则表达式的结果为b,否则为c。

22、逗号运算符
     最右边的值是逗号表达式的结果。
     如:d = ( a = 1 , b = a + 1 , c = b + 3 )  则d的值为6,即d等于最右边的值(b+3)。

23、在关系运算中,= 与 == 经常会搞错,导致结果相去甚远。

*24、枚举常量
      (1)枚举常量定义(默认初始化):
           enum 枚举类型名 {常量1 , 常量2 , ……常量n}; 
           在定义时隐含初始化,常量1的值默认等于0,常量2的值默认为1,常量n的值默认等于n-1。     
 
      (2) 枚举常量定义(显式初始化):
              enum 枚举类型名 {常量1=10 , 常量2 , 常量3=15 , 常量4=80 , 常量5=99,常量6, …… 常量n}
              按照常量值自动加1的规则,则常量2等于11,常量6等于100。
      (3) 定义枚举常量后,可以定义其变量,其变量只能取枚举类型定义时的常量值。

       例:
       enum color {red = 3 , yellow =5 , blue=9};    //定义枚举类型并显式赋值
       enum color a, b, c;                                            //生成3个color类型的枚举变量,这里的enum可以省略
                   color d=blue;                                          //生成1个枚举型变量d并将blue赋值给它
                   b=blue;                                                    //将blue赋值给b,因前面已定义,故此处不需要加color
                   c=9;                                                          //错误,只能将枚举类型定义的值赋给枚举变量,而不能赋给其数

原创粉丝点击