《Visual C++程序设计及实践》课件第2章 C++基础_第1页
《Visual C++程序设计及实践》课件第2章 C++基础_第2页
《Visual C++程序设计及实践》课件第2章 C++基础_第3页
《Visual C++程序设计及实践》课件第2章 C++基础_第4页
《Visual C++程序设计及实践》课件第2章 C++基础_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-1-本章目标掌握C++中的变量、常量掌握C++的基本数据类型掌握数据类型的转换掌握运算符和表达式的使用掌握流程控制结构掌握数组的定义和使用掌握定义和使用二维数组的方法掌握C风格的字符串的定义和操作熟悉字符集编码格式常量和变量—标识符C++中,标识符必须以字母、下划线(_)或美元符($)开头,后面可以跟字母、数字、下划线或美元符标识符可以包含数字,但不能以数字开头;除下划线“_”和“$”符号外,标识符中不包含任何特殊字符,如空格;标识符区分大小写,比如,“abc”和“Abc”是两个不同的标识符;对于标识符的长度没有限制;不能使用C++关键字作为标识符。-2-常量和变量—标识符下列标识符是非法的:-3-myvar//包含空格;9myvar//以数字开头;a+c//加号“+”不是字母和数字属于特殊字符。常量和变量—常量在C++中,利用const关键字来定义常量,常量被定义后,不允许再进行更改。常量定义的基本格式如下:-4-const<data_type>var_name=var_value;const是关键字,表示要定义的标示符是常量,必须注明;data_type是C++的任意数据类型之一;var_name是常量名,必须符合标识符命名规范;利用“=”对常量值进行初始化常量和变量—常量常量定义举例:-5-//声明了一个double类型的常量,初始化值为3.1416。

constdoublePI=3.1416;//声明了一个布尔类型的常量,初始化值为true。

constboolIS_MAN=true;常量和变量—变量在C++中,所有的变量必须先声明再使用。其定义的基本格式如下:-6-<data_type>var_name=var_value;data_type是C++的任意数据类型之一;var_name是变量名,必须符合标识符命名规范;利用“=”对变量值进行初始化。常量和变量—变量变量定义举例:-7-intcount=10;//同时声明几个同一数据类型的变量,变量之间用“,”隔开inti,j,k;

常量和变量—变量作用域使用“{”和“}”包含起来的代码块,是一个单独的程序块;在上述程序块内定义的变量称之为“局部变量”。局部变量的作用范围有限:离开了变量作用域,该变量就不能再被访问在一个确定的域中,变量名应该是唯一的-8-常量和变量—变量作用域下列代码演示了局部变量的作用域:-9-......intmain(intargc,char*argv[]){//num在内层作用域中可用

intnum=2; //测试变量num if(num==2){ //定义num1,其作用域为if所在的{} intnum1=num*num; cout<<"num值是:"<<num<<"num1的值是:"<<num1<<endl; } //num1=2;错误!num1未知

......}数据类型-10-C++的数据类型分为两大类:基本内置类型自定义类型数据类型—基本内置类型整数类型:short,int,long;浮点类型:float,double;字符类型:char,wchar_t;布尔类型:bool;void类型:通常用作无返回值函数的返回类型,或定义无确切类型的指针。-11-数据类型—基本内置类型C++标准规定了每个基本内置类型的最小存储空间:-12-类型大小(位)取值范围说明short(短整型)16-215~215-1用于存储小于32767的数字。如员工编号int(整型)32-231~231-1用于存储较大的整数,用途非常广泛long(长整型)32-231~231-1同intfloat(浮点型)323.4e-38~3.4e+38用于存储带小数的数字,如产品价格double(双精度)641.7e-38~1.7e+38存储精度要求高的数据,如银行余额boolean(布尔型)1true/false用于存储真假值,通常用于判断char(字符型)16-27~27-1用于存储字符数值。如性别:’a’wchar_t(双字节字符)16-215~215-1用于存储双字节字符,例如:’中’数据类型—自定义类型-13-类型说明数组具有相同数据类型的变量的集合结构体具有不同数据类型的变量的集合枚举枚举类型是一种独特的值类型,它用于声明一组命名的常数联合不同数据类型,共用一个内存单元指针内存地址,用于直接操作内存类(class)变量和方法的集合。如Employee类包含了员工的详细信息和操作这些信息的方法引用引用就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参数数据类型—数据类型转换自动类型转换-14-将一种类型的变量赋给另一种类型的变量时,就会发生自动类型转换发生自动类型转换要满足的条件如下:两种类型必须兼容;目标类型精度大于源类型精度数据类型—数据类型转换强制类型转换-15-将表示范围大的数据类型转换成表示范围小的数据类型时,需要用到强制类型转换强制类型转换的常用语法形式有两种,一种是从C语言继承的,形式为:

data_typevar1=(data_type)var2;另外一种转换需要使用static_cast运算符,其形式为:

data_typevar1=static_cast<data_type>(var2);运算符运算符(或称为操作符)是一个符号,用来操作一个或多个表达式以生成结果表达式是指运算符(如+和-)与变量或常量组合的语句C++还支持运算符重载,允许程序员定义用于类类型时运算符的含义C++中的运算符可以分为一元、二元及三元运算符等类型-16-运算符—算术运算符-17-运算符数学含义示例+加a+b-减或负号a-b,-b*乘a*b/除a/b%取模a%b++自增a++,++a--自减a--,--a运算符—比较运算符-18-运算符数学含义示例>大于a>b<小于a<b==等于a==b>=大于等于a>=b<=小于等于a<=b运算符—逻辑运算符-19-运算符数学含义示例!非!a&&与a&&b||或a||b运算符—位运算符-20-运算符含义示例~按位非(NOT)~a&按位与(AND)a&b|按位或(OR)a|b^按位异或(XOR)a^b>>右移a>>b>>>无符右移a>>>b<<左移a<<b运算符—赋值算符-21-运算符示例+=a+=b-=a-=b*=a*=b/=a/=b%=a%=b运算符—条件算符符-22-表达式?e1:e2#include<iostream>usingnamespacestd;intmain(intargc,char*argv[]){ intnum1=3; intnum2=6; boolb=num1>num2?true:false; cout<<"b="<<b<<endl; return0;}三元运算符的使用示例如下:运算符—sizeof算符符-23-sizeof运算符的作用是返回一个变量所占内存的长度,长度的单位是字节,该运算符的使用有以下三种语法形式如下:sizeof(typename)sizeof(var_name)sizeofvar_name运算符—sizeof算符符-24-sizeof运算符的使用示例如下:#include<iostream>usingnamespacestd;intmain(intargc,char*argv[]){ inta=12; intx1=sizeof(a); intx2=sizeof(int); cout<<”x1=”<<x1<<”;”<<”x2=”<<x2<<endl;}运算符—运算符优先级-25-优先级运算符结合方向说明1[]().->左到右2-++--*(解引用)&(取地址)!~右到左单元运算符3/*%左到右双元运算符4+-左到右双元运算符5<<>>左到右双元运算符6>>=<<=左到右双元运算符7==!=左到右双元运算符8&左到右双元运算符9^左到右双元运算符10|左到右双元运算符11&&左到右双元运算符12||左到右双元运算符13?:右到左三元运算符14=/=*=%=+=-=<<=>>=&=^=|=右到左15,左到右从左向右顺序运算流程控制-26-分支结构:if-else,switch循环结构:while,do-while,for转移语句:break,continue,return流程控制—分支结构-27-If(condition1) statement1;ifelse(condition2) statement2[else] statement3;if-else语句流程图

流程控制—循环结构-28-while(condition){statement;}while语句流程图流程控制—转移语句-29-for(表达式1,表达式2,表达式3){......if(表达式4)break;......}for(表达式1,表达式2,表达式3){......if(表达式4)continue;......}数组-30-数组是一种自定义数据类型用来存储一组相同数据类型的数据根据数组存放元素的组织结构,可将数组分为一维数组、二维数组以及多维(三维以上)数组数组—一维数组-31-定义数组data_typevarName[num];inta[10];//定义一个整型数组,10个元素floatb[20];//定义一个单精度浮点型数组,20个元素charc[100];//定义一个字符型数组,100个元素doubled[10];//定义一个双精度浮点型数组,10个元素boole[10];//定义一个布尔型数组,10个元素示例代码:数组—一维数组-32-数组初始化数组在定义时,如果没有对数组进行初始化,数组中的元素初始值将是所在内存的临时值建议在定义数组的同时初始化数组intk[4]={1,3,4,5};//用大括号,数据之间使用“,”隔开intarray[10]={0};//所有元素初始化为0inta[]={1,3,4,5};//编译器自动确定数组的元素个数示例代码:数组—一维数组-33-使用数组......intmain(intargc,char*argv[]){intarray[]={10,23,6,88,19};...... //寻找最大值

intlength=sizeof(array)/sizeof(int); for(inti=1;i<length;i++) { if(array[i]>max) { index=i; max=array[i]; } }使用数组存储5个整数,并输出其中最大者:数组—二维数组-34-定义二维数组data_typevarName[num1][num2];charch[3][4];//定义了一个char型二维数组ch示例代码:数组—二维数组-35-初始化二维数组intarray[3][2]={{1,2},{3,4},{5,6}};示例代码:int[3][2]类型数组的初始化

数组—二维数组-36-使用二维数组......intmain(intargc,char*argv[]){ //用二维数组表示矩阵

intmatrix[][3]={{1,2,0},{4,0,6},{0,8,9}}; //打印矩阵

for(inti=0;i<3;i++) { for(intj=0;j<3;j++) { cout<<matrix[i][j]<<""; } cout<<endl;//换行

} return0;}使用二维数组实现矩阵的存储:字符串-37-单字节字符集(简称SBCS):中每个字符用一个字节表示,用于英文字符表示。单字节字符串用char*或char[]来表示。多字节字符集(简称MBCS):一般用于亚洲语系。每个中文汉字用两个字节存储,英文字符用1个字节ASCII码存储。多字节字符串也用char*或char[]来表示。双字节字符集(简称DBCS):每个字符都用两个字节表示,UNICODE是典型的双字节字符集。双字节字符串用wchat_t*或wchar_t[]来表示。字符串—C风格字符串-38-C风格字符串的定义和存储有两种形式://1.使用指针:char*str="你好c++";//多字节字符集wchar_t*str1=L"吃饭了吗?";//双字节字符集,前缀加字母L;//2.使用字符数组:charsName[]="王丽";//不使用{},多字节字符集charsCity[]={"北京"};//使用{},多字节字符集wchar_tsAddr[]={L"黄土高坡"};//双字节字符集,前缀加字母L;字符串—常用字符串操作函数-39-字符串复制函数:strcpy、wcscpy;字符串连接函数:strcat、wcscat;字符串查找函数:strstr、wcsstr。字符串—常用字符串操作函数-40-示例代码:......intmain(intargc,char*argv[]){ charstr[100]={"我们都知道"}; charsName[20]={0}; charsSay[20]={0};

strcpy(sName,"王丽");//将字符串"王丽"复制到sName中

cout<<"sName的内容是:"<<sName<<endl; strcat(sSay,"人很好");//将字符串"人很好"连接到sSay上

cout<<"sSaye的内容是:"<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论