一,数据类型
1,int 占4个字节 ,shout、long占8个,float占4个字节、double占8个,char占1个。
2,ox16进制前导符,o为8进制前导符。
3,i++的值与i的值相同,++i的值与i相同。
4,变量的初始化
(1),int i=5
(2),<类型><变量>(<表达式>) eg:int i(5)
5,c++中的常量
#define count 60
这叫宏定义,不叫常量
常量的定义:
const int count = 60;
const int count = 60;
形参指定类型,实参指定数值
6,根据使用的运算对象的数量,C++的运算符可以分为单目运算符(仅对一个运算对象进行操作),双目运算符(需要两个运算对象),和3目运算符。
7,逗号表达式:逗号表达式常用于简化程序的编写
eg: if(x>y){
t=x;
x=y;
y=t;
}
等价于
if(x>y)
t=x,x=y,y=t;
8,类型修饰符和常量修饰符
signed 有符号 unsigned 无符号数
9,枚举类型
enum<枚举类型名>
{
<枚举符号表>
}
10,break语句和continue语句
(1),break结束本次循环
判读一个数是不是素数
#include<iostream>
using namespace std;
int main(){
int x,i;
bool f=false;
cout<<"请输入要判断的数字:"<<endl;
cin>>x;
for(i=2;i<x;i++){
if(x%i==0){
f=true;
break;
}
}
if(f){
cout<<x<<"不是素数"<<endl;
} else{
cout<<x<<"是素数"<<endl;
}
}
100到300的素数
#include<iostream>
using namespace std;
int main(){
int x,i;
bool f;
for(x=100;x<300;x++){
f=true;
for(i=2;i<x;i++){
if(x%i==0){
f=false;
}
}
if(f){
cout<<x<<",";
}
}
}
(2),continue用于提前结束本次循环
二,数组
1,定义 : 类型说明 数组名 [长度];
2,引用数组: 数组名[下标]; 数组的下标从0开始
3,初始化:
(1),a[3]={1,2,3}
(2),a[ ]={1,2,3}
(3),a(10)={1,2,3}其余末尾元素为0;
4,二维数组
杨辉三角#include<iostream>
using namespace std;
int main(){
int i,j,x;
int A[7][7];
for(i=0;i<7;i++){ 指针调用成员函数
A[i][0]=1;
A[i][i]=1;
}
for(i=2;i<7;i++){
for(j=1;j<i;j++){
A[i][j]=A[i-1][j-1]+A[i-1][j];
}
}
for(i=0;i<7;i++){
for(j=0;j<=i;j++){
cout<<A[i][j]<<" ";
}
cout<<endl;
}
}
5,字符数组和字符串处理函数
(1),字符串的输入输出
#include<iostream>
using namespace std;
int main(){
char a[10];
cin>>a;
cout<<a;
}
(2)字符串的链接
#include<string.h>
strcat(字符串1,字符串2)
(3)字符串复制函数
strcmp(字符串1,字符串2)
将字符串2复制到字符数组1中,字符串2可以是字符数组名或字符串常量
(4),字符串的比较函数
strcmp(字符串1,字符串2)
比较2个字符串的大小
(5),计算字符串的长度
strlen(字符串)
(6),字母变小写
strlwr(字符串);
(7),字母变大写
strupr(字符串)
6,结构体
struct 结构体名
{
类型名1 成员名表1;
类型名2 成员名表2;
。。。
};
union 标识符
{
成员表
};
结构体分配的空间为所有成员的和;
结构体的引用 :结构体变量名.成员名;
三,函数
1,函数的定义
<函数值类型标示符>函数名(<形参表>)
{
函数体;
}
2,函数体是一个分程序结构
3,先声明,在使用;<函数返回值的类型标示符 函数名 (<参数表>)
4,函数间的参数传递
在C++中,参数传递时,实参与形参有3中结合方式:值调用,引用调用,和地址调用。
(1),值调用
调用时仅仅将实参的值赋给形参,传递之后,在被调函数中对形参值得任何修改都不会影响到实参的值。
(2),引用调用
引用是一种特殊类型的变量,可以被认为是另一个变量的别名。通过引用名与通过被引用的变量名访问变量的效果是一样的。 int i ,&refi=i;语句中定义了一个整形变量i,由于ref前面有符号&,所以也定义了一个引用名refi。
5,函数的重载
形参类型不同或者形参个数不同,函数返回值类型不能决定函数重载。
四,指针
1,C++中规定,某个变量的内存地址称为该变量的指针,同样,某个数组的地址称为该数组的指针,某个函数的地址称为该函数的指针。
2,指针变量:专门用来保存以上地址的变量就是指针变量。
(1)指针变量的声明格式如下:
数据类型 *指针变量名; eg:int *i;
(2),指针变量的初始化
数据类型标示符 *指针变量名=初始地址值;
int i;
int *ptr=&i;
3,指针运算
(1)*和&运算符
&称为取地址运算符,用以返回变量的指针,即变量的地址;*称为指针运算符,用以返回指针变量所指向的值。
int *ptr;声明ptr是一个int型的指针变量
y=*ptr;将指针变量ptr所指向的值赋给变量y;
int n=3,&ref=n;声明一个int型的引用名ref,该引用名是变量n 的别名
int ptr=&x对指针变量ptr赋初值
ptr=&x;取变量x的地址赋给指针变量
ptr=&x;*ptr=2;经过ptr=&x;后,变量ptr指向了变量x,这样,*ptr也是对变量x的访问,只不过使用x是直接访问,而使用*ptr是间接访问。
4,指针与数组
*p++ => *(p++)
*++p => (*p)++
5,动态储存分配
(1),运算符new用来申请所需的内存。其用法:
<指针变量>= new <类型>;
或者
<指针变量>= new <类型>(<初值>);
(2),new运算符也可以为数组分配储存空间。用法为:
<指针变量>=new <类型>[<元素个数>];
(3),运算符delete用于释放先前由new申请到的储存区域,并将其归还到堆中。其用法为:
delete<指针>;
五,类和对象
1,在定义类时,一般应包括下列成员
(1),数据成员,即类的属性。
(2),成员函数,即类的方法。
(3),构造函数,用来对对象进行初始化。
(4),析构函数,在撤销对象时进行清理的工作。
2,在C++中类成员的访问控制权限通常有:私有的(private),共有的(public),保护的(protected)。
3,成员函数的定义的定义
<类型><类名>::<函数名>(<参数表>)
{
<函数体>
}
注:作用域运算符“::”指出成员函数的所属的类。
4,对象,一个对象称为一个类的实例。
声明(或定义)一个对象的一般形式:
<类名> <对象1>,<对象2>,<对象3>.
5,构造函数,析构函数
(1),构造函数
<类名>(<类名>);
注:构造函数与类名形同,且没有返回值类型。构造函数既可以类外定义,也可以作为内联函数在类内定义,也允许重载。
(2),析构函数
<类名>::<类名>( );
析构函数名与类名相同,析构函数不带任何参数,因此析构函数不能重载,析构函数没有返回值类型。
六,类的继承
1,派生类的定义格式:
class 派生类名:继承方式 基类名1,继承方式 基类名2.......……
{
派生类增加的成员声明
}
2,继承的方式有3种,即共有继承(public),私有继承(private),保护继承(protected).默认为private.
3,派生类的继承方式
基类中 继承方式 子类中
public & public继承 => public
public & protected继承 => protected
public & private继承 => private
public & public继承 => public
public & protected继承 => protected
public & private继承 => private
protected & public继承 => protected
protected & protected继承 => protected
protected & private继承 => private
private & public继承 => 子类无权访问
private & protected继承 => 子类无权访问
private & private继承 => 子类无权访问
4,派生类的构造函数和析构函数
(1),基类中的构造函数和析构函数不能被继承。
(2),派生类构造函数的一般格式
派生类名::派生类名(参数总表):基类名1(参数表1),。。。。
{
派生类新增成员的初始化
}
5,友元
(1),指定友元可以使用关键字friend
七,多态性
1,编译时多态指同一类的不同对象或同一个对象在不同环境下,调用名称相同的成员函数,所完成的功能不同。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论