C++程序设计(第二版)第一章学习笔记

第一章

新建一个Project 名称为:exam2 类型为:Win32 Console Application ,

时在文件夹exam2下会自动生成一个Debug文件夹和exam2.dsp; exam2.dsw;

exam2.ncb三个文件

 

Project建立完成后,需要再建立一个File,名称为:two 类型为:C++

Source File,此时文件夹exam2下自动生成了一个two.cpp文件。

 

◆程序内容求最大数。

  编译后,在Debug文件夹下生成以下文件:exam2.ilk;exam2.pch;exam2.pdb

                                        two.obj

                                        vc60.idb;vc60.pdb

            以及一个可执行文件exam2.exe

 

◆标准C++定义了74个关键字

 

C++数据的使用严格遵从“先说明类型后使用”

 

基本运算符及其表达式

算术运算符及算术表达式

   一、运算符“/”,当两个操作数均为整数时,所执行的运算为整数,结果为整数。整除运算舍去小数

   如:5/4   结果为1

   二、但只要有一个操作数是实数,则两个操作数均转换为double型,“/”成为普通的除,结果是实数

   如:5/4.0   结果为1.25

   三、求余运算符“%”,也称为求模。要求两个操作数是整数。如果两个整数中有负数,则结果的符号与被除数相同。

   如:-7%6   结果为-1

       7%6   结果为1

       7%6  结果为-1

 

赋值运算符及赋值表达式

   复合赋值运算符

        +   -=  *   /=  %=

   复合赋值运算表达式仍属于赋值表达式,它不仅可简化书写,而且能提高表达式的求值速度。

 

自增、自减运算

   ++   --

   如:

      i++    相当于i=i+1;

      j--    相当于j=j-1;

运算符前置的情况:变量的值先增减后引用

运算符后置的情况:变量的值先引用后增减

如:

    int i=5,j=5,m,n;

    m=++i      //先增减后引用,i的值为6,m的值为6    

    n=j++      //先引用后增减,n的值为5,j的值为6

C++在求逻辑表达式值的时候,采用求值优化算法。其含义是,在求逻辑表达式值的过程中,一旦表达式的值能够确定,就不再继续进行余下的运算。

如:

   a=2,b=0,c=3

   a||b++||c--   //表达式的结果是:a的值为2b值为0,c的值为3                                                                                                                                                                                                                             

  

     强制类型转换

type 表达式

 例子:

   int a=7,b=5;

   float x;

 表达式x=a/b的值为1,因为ab都是整数,该除法将执行整除运算。再将整数结果1转换为单精度类型后进行赋值。

 如果希望相除的实数商1.4赋给x就需要将这两个操作或者其中一个操作数进行强制类型转换

 X=(float)a/(float)b x=(float)a/b

 

注:(float)a/bfloat(a/b)结果是不一样的。

前者是先将变量a强制转换为浮点数,然后再与整数b进行运算

后者是先进行整除运算,再将整型结果1强制转换为单精度型1.0

 

规则:

1>强制类型转换不改变表达式本身的值的类型,而只是产生一个临时变量,用来暂存转换后的值,该临时变量引用后即自动释放。上例中的ab的值都不会变。

2>强制类型转换符的优先级较高,只对紧随其后的表达工起作用,而对其他部分不起作用。如上例中的(float)a/b的含义是先将变量a强制转换为浮点数,然后再与整数b进行运算。

 

新的C++标准中,强制类型转换采用static_cast  const_cast  dynamic_cast  reinterpret_cast 四个关键字,形式为static_cast<type>,在语法上更加严谨。

 

     数组

   定义:

数组元素个数不能是变量

数组元素个数不能是实数

     初始化:

         初始化的个数可以少于定义的元素个数,这时从第0个元素开始逐个取得初始化值,其余的元素初始化为0.

使用:

     对数组的访问指的是对数组的元素的访问,一般不能直接将数组名作为访问对象,给数组赋值时也必须给每一个元素逐个赋值。

 

     字符数组

Char string1[10];   //可用来保存10个字符的字符数组

Char city_name1[]={‘N’,’a’,’n’,’J’,’i’,’n’,’g’};

允许直接用字符串常量对字符数组进行初始化

Char city_name2[]=”NanJing”;

注:用字符串常量对字符数组进行初始化时,字符数组会自动加上一个串结束符’/0’.

因此,数组city_name1 实际比city_name2多占用一个字节,存放’/0’

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值