1
2
3
4
5
6
7
#include <iostream>
using namespace std:
int main()
{
cout<<"hello world"<<endl;
return 0;
}

c和c++的头文件差别

c c++
stdio.h stdio.h
string cstring
math.h cmath
stdlib.h cstdlib

数据类型

bool

flag=false falg=ture

struct

1. 定义结构体变量时,其前面的struct可以省略
1
2
c:   struct student wang
c++: student wang

2. 强制类型转换

c:  (数据类型)(表达式)
c++: 数据类型(表达式)
1
2
c:  b=a+(int)(x+y);
C++: y=double(5%3);

3. 动态内存分配运算符

1
2
分配用:new         
释放:delete

new为程序分配一段内存空间,并返回指向该内存的首地址。

格式:

  • **指针变量=new 数据类型
        指针变量 = new 数据格式[数组大小];
        delete 指针变量;**
    
1
2
3
4
5
6
7
8
int *P1,*P2,*P3
P1=new int;
P2=new int[5];
P3=new int(5); //将int赋值为5,并将地址赋值给p3

delete P1;
delete []P2; //删除数组
delete P3;

c语言

1
2
分配用:malloc()         
释放:free()

4. 作用域运算符

1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
float a=2.4;
int main()
{
int a=8;
cout<<a<<endl; //表示局部变量
cout<<::a<<endl; //::a表示全局变量a
}
1
2
3
4
5
6
7
8
9
#include<iostream>
//using namespace std; 这里注释命名空间
float a=2.4;
int main()
{
int a=8;
std::cout<<a<<std::endl;
std::cout<<::a<<std::endl; //std::a表示命名空间std定义的标识符
}

5.变量的引用

  • 为一个变量起一个别名,&是引用声明符号,并不代表地址,不同于:把a的值赋值给b的地址
1
2
3
4
int a;
int &b=a;
a=20;
cout<<b<<endl; //b=20

用于扩充函数传递数据的功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
void swap(int &a,int &b)
int main()
{
int i,j;
i=3,j=5;
swap(i,j);
cout<<i<<j<<ebdl; //i=5,j=3
return 0;
}
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}

6.常变量:加上关键字const ,变量在程序运行期间不能改变

1
const int a=20

7.C++的输入和输出

1
2
cin>>b;
cout<<B;

优先级和结合性

1
2
3
int a=1,b=4,C=8;
cout<<a,b,c; //输出1
cout<<a,b,c<<endl; //出错

cin和>>

  • 有多种分割符号,空格,TAB,回车

输出控制符:

1
2
3
4
5
6
7
8
9
10
#include<iostream>
#include<inmanip>
uning namespace std;
int main()
{
double d=225.0/7.0;
cout<<"d:"<<d<<endl;
cout<<setiosflags(ios::fixed);
cout<<"d:"<<etiosflags(5)<<d<<endl; //输出五位小数
}

//cout<<setiosflags(ios::fixed);