c++入门基础

第一部分 c++基础知识
1
a) VS进行编译时应该先对文件进行“生成”或者“重新生成”操作,方法是右键点击文件,弹出菜单中有“生成”选项。
b) 用Dev编译器进行多文件连接编译时,将头文件(.h)放入Dev安装目录下MinGW64\include文件夹中进行编译。
2 数据的存储、表示形式和基本运算
2.1 C++的数据类型
表2.1 数值型、字符型数据的字节数和数值范围
类型 类型标示符 字节数 数值范围
整形 [signed]int 4 -2147483648~+2147483648
无符号整形 unsigned[int] 4 0~4294967295
短整型 short[int] 2 -32768~+32767
无符号短整型 unsigned short[int] 2 0~65535
长整形 long[int] 4 -2147483648~+2147483648
无符号长整形 unsigned long[int] 4 0~4294967295
字符型 [signed]char 1 -128~+127
无符号字符型 unsigned char 1 0~255
单精度型 float 4  
双精度型 double 8  
长双精度型 long double 8  
字符串类型 string    
逻辑型 bool   true、false
2.2 常量
2.2.1 数值常量
2.2.2 字符常量
2.2.2.1 普通字符常量
用单引号括起来的一个字符,如 ’a’、’A’、’#’,在内存中占一个字节,只包括一个字符,’ab’不合法。
2.2.2.2 转义字符常量
表2.2P22
2.2.2.3 字符串常量
用双引号括起来的字符,如”abc”。字符串常量中也可以包含转义字符,如”abc\n”是4个字符,占用5个字节,因为编译系统会在字符串最后自动加一个’\0’作为字符串结束标志,占用1个字节。
2.2.3 符号常量
为了编程和阅读的方便,可以用一个符号名代表一个常量,称为符号常量。在c++中一般用长变量,而较少使用符号常量。

define PRICE 30 //用预处理指令#define指定PRICE在程序中代表常量30,注意不是语句,后面没有 ;

2.2.3.1.1.1 举例代码

include

using namespace std;
int main()
{
char c1=’a’,c2=’b’,c3=’\101’,c4=’\102’,c5=’\105’;
cout <

include

using namespace std;
int main()
{
cout<<0+’a’<

include

using namespace std;
int main()
{
char c1,c2,c3,c4,c5;
c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4,c2+=4,c3+=4,c4+=4,c5+=4;
cout<

include

using namespace std;
int main()
{
int i,j,m,n;
i=8,j=10;
m=++i+j++;
cout<

include

using namespace std;
int main()
{
char c[5]={‘z’,’a’,’b’,’Z’,’A’} ;
int i;
for(i=0;i<5;i++)

    if ((c[i]>='A'&& c[i]<='Z') || (c[i]>='a'&& c[i]<='z')) 
    {
        c[i]+=4;
        if ((c[i]>'Z'&&c[i]<='Z'+4 )|| (c[i]>'z'&&c[i]<='z'+4) ) c[i]-=26;      
    }   

for (i=0;i<5;i++) cout<< c[i]   ;
return 0;   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

}
3 程序设计初步
3.1 基于过程的程序设计和算法
3.1.1 算法的概念
算法:对操作的描述,为解决一个问题而采取的方法和步骤
数据结构:对数据的描述
程序=算法+数据结构
3.1.2 算法的表示
有 自然语言、流程图、伪代码、计算机语言(计算机程序) 四种
3.2 C++的程序结构和C++语句
1) 预处理指令,如 #include 指令和 #define 指令;
2) 全局声明,在函数外对数据类型、函数以及变量的声明和定义;
3) 函数,包括函数首部和函数体;
3.3 C++的输入与输出
3.3.1 cin 和 cout进行输入输出
3.3.1.1 输入流与输出流的基本操作
cin语句的一般格式:
cin>>变量1>>变量2>>变量3……
cout语句的一般格式
cout<<表达式1<<表达式2<<达式3……
3.3.1.2 在标准输入流与输出流中使用控制符
如果使用了控制符,在程序单位的开头要加 #include 头文件。
3.3.1.2.1.1 输入输出流使用控制符

include

include //声明流操作符

using namespace std;
int main()
{
char c;
c=003; //003为心形的ASCII码
cout<

include

include

include

using namespace std;
int main()
{
double r,h;
cout<< “请输入圆柱体半径”;
cin>>r;

double l, s;
const double pi=3.141592653;
l=2*r*pi ;
s=pi*(pow(r,2));
cout<<"圆的面积="<<s<<endl; 
cout<<"圆的面积="<<setiosflags(ios::fixed)<<setprecision(2)<<l<<endl; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

}

4 利用函数实现指定的功能
4.1 函数分类
4.1.1 系统函数(库函数)
4.1.2 用户自定义函数(无参函数、有参函数)
4.2 定义函数的一般形式
4.2.1 定义无参函数的一般形式
类型名 函数名(void)
{声明部分
执行语句}
4.2.2 定义有参函数的一般形式
类型名 函数名(形式参数列表)
{声明部分
执行语句
}
4.3 函数参数和函数的值
4.3.1 形式参数和实际参数
实参变量对形参变量的数据传递是“值传递”,即单项传递,只由实参传递给形参,而不能由形参传回给实参,因此在执行函数调用时,如果形参的值发生改变,并不会改变主调函数中实参的值。
4.3.2 函数的返回值
函数的返回值是通过函数中的 return 语句获得的。
4.3.2.1.1.1 调用实参函数求最值

include

using namespace std;

int max(int x,int y) //定义有参函数max
{
int z;
z=x>y?x:y;
return(z); //强z的值返回到主调函数中 ,即赋给下面的变量c
}

int main()
{
int a,b,c;
cout<<”please enter two integer numbers:”;
cin>>a>>b;
c=max(a,b);
cout<<”max=”<

include

using namespace std;

int a,b;
  • 1
  • 2

int main()
{
void change(int i,int j); //声明函数

cin>>a>>b;
cout<<a<<' '<<b<<endl;
void change(int i,int j);
cout<<a<<' '<<b<<endl;
  • 1
  • 2
  • 3
  • 4
  • 5

}
void change(int i,int j)
{
int k;
k=i,i=j,j=k;
return 0;
}
指针变量作函数
4.4 函数的调用
4.4.1 函数调用的一般形式
函数名(实参列表)
4.4.2 函数调用的方式
4.4.2.1 函数语句
把函数调用作为一个语句,并不要求带回一个值,只要求函数完成一定的操作。
4.4.2.2 函数表达式
函数出现在表达式中,这时要求函数带回一个确定的值参加表达式运算。
4.4.2.3 函数参数
一个函数调用作为另一个函数的实参。
4.4.3 对被调用函数的声明和函数原型
如果使用库函数,应该在本文件开头用 #include 指令将有关头文件“包含”到本文件夹中。
如果被调用函数在主调函数之后,则必须在调用此函数之前对被调用函数进行声明(如果未进行声明,系统在编译时无法知道被调函数的含义,因而无法编译,按出错处理)。所谓函数声明,就是在函数尚未定义的情况下,事先将该函数的有关信息通知编译系统,以便编译系统能够正常进行。
对函数的声明称为函数原型
4.5 函数的嵌套调用

4.6 函数的递归调用

4.7 内置函数
4.8 函数重载
4.9 函数模板
建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,只需定义一次即可,在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。
定义模板函数一般形式:
template
通用函数定义
4.10 有默认参数的函数
4.11 变量的作用域
4.11.1 局部变量
在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,同样,在复合语句中定义的变量只在本复合语句范围内有效,这些内部变量称为局部变量。
4.11.2 全局变量
在函数内定义的变量是局部变量,而在函数之外定义的变量是外部变量,称为全局变量。全局变量的有效范围从定义变量的位置开始到本源文件结束。
4.12 变量的存储类别
存储方法分为静态存储和动态存储两大类,具体分为以下四种。
4.12.1 自动变量(auto)
4.12.2 静态局部变量(static)
4.12.3 寄存器变量(register)
4.12.4 外部变量(extern)
4.12.5 静态外部变量(static)
4.13 变量的声明和定义
建立存储空间的称为定义,不建立存储空间的称为声明。
定义变量:
int a;
声明变量:
extern int a;
所谓声明,其作用是向编译系统发出一个信息,声明该变量是一个在后面定义的外部变量,仅仅是为了提前引用该变量而做的声明。
4.14 内部函数和外部函数
4.14.1 内部函数
只能被本文件中其他函数所调用。在定义内部函数时,在函数类型的前面加关键词 static
4.14.2 外部函数
能被其他文件调用的函数称为外部函数,在定义外部函数时,在函数类型的前面加关键词 extern(如果省略关键字则默认为外部函数)
4.15 头文件和标准库
5 利用数组处理批量数据
5.1 定义和引用一维数组
5.1.1 定义一维数组
类型名 数组名 [常量表达式]
5.1.2 一维数组的初始化
5.1.2.1 在定义数组时对全部数组元素赋初值
int a[10]={0,1,2,3,4,5,6,7,8,9};
5.1.2.2 可以只给一部分元素赋初值
int a[10]={0,1,2,3 };
5.1.2.3 在对全部数组元素赋初值时,可以不指定数组长度
上述数组可以写为
int a[ ]={0,1,2,3 };
5.1.2.4 不能对整个数组一次赋值
如: a={0,1,2,3}是错误的
5.1.2.5 不能对整个数组整体赋值
如 a=b;(这里设定a、b均为正数数组)
5.1.3 引用一维数组
只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。
5.2 定义和引用二维数组
5.2.1 定义二维数组
类型名 数组名 [常量表达式] [常量表达式]
5.2.2 二维数组的初始化
5.2.2.1 按行给二维数组初始化
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
5.2.2.2 可以将所有数据写在一个花括号内,按数组排列的顺序对全部元素赋初值
5.2.2.3 可以对部分元素赋初值
这样其余元素值自动置为0
5.2.2.4 如果对全部元素都赋初值,则定义数组时对第1维的长度可以不指定,但第2维的长度不能省略
5.3 用数组作函数参数
数组元素可以作为函数实参,是将数组元素的值传递给新参变量
数组名也可以做实参和形参,传递的是数组的起始地址。用数组名作函数实参时,如果改变了形参数组元素的值,将同时改变数组元素的值,可以利用这一特点改变实参数组元素的值(因为函数传递的是地址,按“按值传递”的思想,这个值就是地址,它是不能通过改变返回实参的,但是它里面储存的数据是可以改变的,即实参的地址不变,但是里面的数据发生改变)。
5.3.1.1.1.1 十个整数由小到大排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值