复习C++_基础、函数、数组、字符串

复习C++_基础、函数、数组、字符串_第1张图片

程序的开发过程

程序

  • 源程序:用源语言写的,有待翻译的程序;
  • 目标程序:源程序通过翻译程序加工以后生成的机器语言程序;
  • 可执行程序:连接目标程序以及库中的某些文件,生成的一个可执行文件,例如Windows系统平台上的.EXE文件。

三种不同类型的翻译程序

  • 汇编程序:将汇编语言源程序翻译成目标程序;
  • 编译程序:将高级语言源程序翻译成目标程序;
  • 解释程序将高级语言源程序翻译成机器指令,边翻译边执行。

复习C++_基础、函数、数组、字符串_第2张图片

复习C++_基础、函数、数组、字符串_第3张图片

 

复习C++_基础、函数、数组、字符串_第4张图片

 注意:字符类型char实际上存储的也是整数。

复习C++_基础、函数、数组、字符串_第5张图片

 复习C++_基础、函数、数组、字符串_第6张图片

复习C++_基础、函数、数组、字符串_第7张图片

复习C++_基础、函数、数组、字符串_第8张图片

 

复习C++_基础、函数、数组、字符串_第9张图片

复习C++_基础、函数、数组、字符串_第10张图片

 复习C++_基础、函数、数组、字符串_第11张图片

复习C++_基础、函数、数组、字符串_第12张图片

 

复习C++_基础、函数、数组、字符串_第13张图片

 

复习C++_基础、函数、数组、字符串_第14张图片

复习C++_基础、函数、数组、字符串_第15张图片

 

i++和++i的区别就是:

i++ :先引用,后增加
++i :先增加,后引用

换句话就是:

i++ : 先在i所在的表达式中使用i的当前值,再让i加1
++i : 先让i加1,再在i所在的表达式中使用i的新值

取决于++和i的相对位置:

++在i前面,i先加1,然后在表达式中用i的值;++在i后面,先在表达式中用i的值,然后i再加1。

 

复习C++_基础、函数、数组、字符串_第16张图片

复习C++_基础、函数、数组、字符串_第17张图片

 

复习C++_基础、函数、数组、字符串_第18张图片

 

复习C++_基础、函数、数组、字符串_第19张图片

复习C++_基础、函数、数组、字符串_第20张图片

复习C++_基础、函数、数组、字符串_第21张图片

复习C++_基础、函数、数组、字符串_第22张图片

 

混合运算时数据类型的转换:

  1. 将一个浮点数赋给整数类型时,结果值将只保留浮点数中的整数部分,小数部分将丢失。
  2. 将一个整数值赋给浮点类型时,小数部分记为0。如果整数所占的空间超过了浮点类型的容量,精度可能有损失。

 

复习C++_基础、函数、数组、字符串_第23张图片

复习C++_基础、函数、数组、字符串_第24张图片

 

复习C++_基础、函数、数组、字符串_第25张图片

 

复习C++_基础、函数、数组、字符串_第26张图片

 

复习C++_基础、函数、数组、字符串_第27张图片

复习C++_基础、函数、数组、字符串_第28张图片

 

控制语句

① break

② continue

③ goto(使程序的执行流程跳转到语句标号所指定的语句)

例如可用于跳出多重循环,也可以前跳或者后跳,也可以跳出switch,或者在case之间进行跳转可以想象,它的存在会破坏程序的结构,所以应该少用或不用。

#include
using namespace std;
 
int main()
{
	int x,sum=0;
	L1:cout<<"x=";
	cin>>x;
	if(x==-1)
		goto L2;
	else
		sum+=x;
	goto L1;
	L2:cout<<"sum="<

 

复习C++_基础、函数、数组、字符串_第29张图片

复习C++_基础、函数、数组、字符串_第30张图片

复习C++_基础、函数、数组、字符串_第31张图片

复习C++_基础、函数、数组、字符串_第32张图片

 

复习C++_基础、函数、数组、字符串_第33张图片

上述例子中表示j以2作为初始值,类型与i一致。

 

复习C++_基础、函数、数组、字符串_第34张图片

复习C++_基础、函数、数组、字符串_第35张图片

 

复习C++_基础、函数、数组、字符串_第36张图片

 

复习C++_基础、函数、数组、字符串_第37张图片

复习C++_基础、函数、数组、字符串_第38张图片

 函数的定义占内存,函数的声明不占内存。

复习C++_基础、函数、数组、字符串_第39张图片

 

复习C++_基础、函数、数组、字符串_第40张图片

 

 复习C++_基础、函数、数组、字符串_第41张图片

 

复习C++_基础、函数、数组、字符串_第42张图片

 

复习C++_基础、函数、数组、字符串_第43张图片

 

复习C++_基础、函数、数组、字符串_第44张图片

 注意:如果实参表列包括多个实参,对实参求值的顺序并不是确定的,有的系统按自左至右顺序求实参的值,有的系统则按自右至左顺序。许多C版本是按自右而左的顺序求值,例如Tubro C++。

#include 
void main()
{
    int f(int a,int b);  /* 函数声明 */
    int i=2,p;
    p=f(i,++i);        /*  函数调用 */
    printf("%d\n",p);
}   
int f(int a,int b)              /*  函数定义 */
{
    int c;
    if(a>b) c=1;
    else if(a==b) c=0;
    else c=-1;
    return(c);
} 

对于函数调用

int i = 2, p;
p = f(i, ++i);

如果按自左至右顺序求实参的值,则函数调用相当于f(2,3) 。如果按自右至左顺序求实参的值,则函数调用相当于f(3,3)。

复习C++_基础、函数、数组、字符串_第45张图片

 

复习C++_基础、函数、数组、字符串_第46张图片

 复习C++_基础、函数、数组、字符串_第47张图片注意:引用相当于起别名。

复习C++_基础、函数、数组、字符串_第48张图片

复习C++_基础、函数、数组、字符串_第49张图片

复习C++_基础、函数、数组、字符串_第50张图片

运行结果:

  x =5,y=10

  x=10,y=5

 

 复习C++_基础、函数、数组、字符串_第51张图片

复习C++_基础、函数、数组、字符串_第52张图片

 

 复习C++_基础、函数、数组、字符串_第53张图片

 

复习C++_基础、函数、数组、字符串_第54张图片

复习C++_基础、函数、数组、字符串_第55张图片

复习C++_基础、函数、数组、字符串_第56张图片

复习C++_基础、函数、数组、字符串_第57张图片

 

 复习C++_基础、函数、数组、字符串_第58张图片

 

复习C++_基础、函数、数组、字符串_第59张图片

复习C++_基础、函数、数组、字符串_第60张图片

 

复习C++_基础、函数、数组、字符串_第61张图片

 

复习C++_基础、函数、数组、字符串_第62张图片

 

复习C++_基础、函数、数组、字符串_第63张图片

 

 

复习C++_基础、函数、数组、字符串_第64张图片

 

复习C++_基础、函数、数组、字符串_第65张图片

 函数模版举例:

#include
using namespace std;
template <class T> T add(T a,T b)
{
    return a+b;
}
int main()
{
    cout<<"int_add"<10,20)<//生成整型版本的add函数 
    cout<<"double_add="<10.2,20.5)<//生成实型版本的add函数
    cout<<"char_add="<'A','\2')<//生成字符型版本的add函数
    return 0;    
}
View Code

 

函数的调用

嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义。
然而,C语言不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。

复习C++_基础、函数、数组、字符串_第66张图片

复习C++_基础、函数、数组、字符串_第67张图片

 

复习C++_基础、函数、数组、字符串_第68张图片

 

复习C++_基础、函数、数组、字符串_第69张图片

 

复习C++_基础、函数、数组、字符串_第70张图片

 复习C++_基础、函数、数组、字符串_第71张图片

 

 

复习C++_基础、函数、数组、字符串_第72张图片

 

复习C++_基础、函数、数组、字符串_第73张图片

复习C++_基础、函数、数组、字符串_第74张图片

 

 

复习C++_基础、函数、数组、字符串_第75张图片

 

复习C++_基础、函数、数组、字符串_第76张图片

 

复习C++_基础、函数、数组、字符串_第77张图片

复习C++_基础、函数、数组、字符串_第78张图片

复习C++_基础、函数、数组、字符串_第79张图片

复习C++_基础、函数、数组、字符串_第80张图片

复习C++_基础、函数、数组、字符串_第81张图片

 

复习C++_基础、函数、数组、字符串_第82张图片

复习C++_基础、函数、数组、字符串_第83张图片

复习C++_基础、函数、数组、字符串_第84张图片

复习C++_基础、函数、数组、字符串_第85张图片

复习C++_基础、函数、数组、字符串_第86张图片

注:全局变量作用于整个工程文件,同一个工程下不同文件中不能重复定义同一个名字的变量,如FILE2.CPP中的int a=201,b=202产生错误,但是全局变量要想在不同的文件中使用,需要在后续文件中使用extern 声明。

 

复习C++_基础、函数、数组、字符串_第87张图片

 存储方式分为两大类:静态存储类和动态存储类。

具体包含四种:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。根据变量的存储类别,可以知道变量的作用域和生存期。

函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的(栈),数据存储在动态存储区中。
函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。因此这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。

例如:
  int f(int a)  /*定义f函数,a为形参 */
{   auto  int b,c=;  /*定义b、c为自    变量 */
      …………
    }
关键字auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。

有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。

如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。
而对自动变量来说,如果不赋初值则它的值是一个不确定的值。这是由于每次函数调用结束后存储单元已释放,下次调用时又重新另分配存储单元,而所分配的单元中的值是不确定的。

复习C++_基础、函数、数组、字符串_第88张图片

 

复习C++_基础、函数、数组、字符串_第89张图片

   一个程序在编译运行的时候,普通变量存放在栈区STACK,而static会使得变量(如 static int a = 1)存放在DATA,整个内存主要分为四大区:CODE,DATA,STACK,HEAP,

DATA区(存放常量,常量变量,静态变量,静态函数,字符串)特点是不会因为函数调用结束,static修饰的变量和函数而释放,直到整个程序结束才释放。 STACK区的变量与函数,即普通变量经过函数调用完成之后会释放。HEAP区空间由程序员自己规定。

复习C++_基础、函数、数组、字符串_第90张图片

 

复习C++_基础、函数、数组、字符串_第91张图片

寄存器变量为需频繁调用的变量设置,速度快。缺点;存储空间有限。

如果有一些变量使用频繁(例如在一个函数中执行10000次循环,每次循环中都要引用某局部变量),则为存取变量的值要花费不少时间。
为提高执行效率,C语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。

 

复习C++_基础、函数、数组、字符串_第92张图片

虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。

静态局部变量举例:

#include
using namespace std;
int fun()
{
    static int cnt=0;//静态局部变量
    cnt++;
    return cnt; 
}
int main()
{
    int i,c;
    for(i=1;i<=10;i++) 
        c=fun();
    cout<//10
    return 0;    
}
View Code

 

复习C++_基础、函数、数组、字符串_第93张图片

复习C++_基础、函数、数组、字符串_第94张图片

复习C++_基础、函数、数组、字符串_第95张图片

 

复习C++_基础、函数、数组、字符串_第96张图片

 

复习C++_基础、函数、数组、字符串_第97张图片

复习C++_基础、函数、数组、字符串_第98张图片

 

 

复习C++_基础、函数、数组、字符串_第99张图片

 

复习C++_基础、函数、数组、字符串_第100张图片

复习C++_基础、函数、数组、字符串_第101张图片

复习C++_基础、函数、数组、字符串_第102张图片

复习C++_基础、函数、数组、字符串_第103张图片

复习C++_基础、函数、数组、字符串_第104张图片

 复习C++_基础、函数、数组、字符串_第105张图片

复习C++_基础、函数、数组、字符串_第106张图片

复习C++_基础、函数、数组、字符串_第107张图片

复习C++_基础、函数、数组、字符串_第108张图片

复习C++_基础、函数、数组、字符串_第109张图片

 

复习C++_基础、函数、数组、字符串_第110张图片

 

复习C++_基础、函数、数组、字符串_第111张图片

复习C++_基础、函数、数组、字符串_第112张图片

复习C++_基础、函数、数组、字符串_第113张图片

 

复习C++_基础、函数、数组、字符串_第114张图片

 

复习C++_基础、函数、数组、字符串_第115张图片

复习C++_基础、函数、数组、字符串_第116张图片

复习C++_基础、函数、数组、字符串_第117张图片

  sizeof(A):A所占的字节数

复习C++_基础、函数、数组、字符串_第118张图片

 

复习C++_基础、函数、数组、字符串_第119张图片

复习C++_基础、函数、数组、字符串_第120张图片

复习C++_基础、函数、数组、字符串_第121张图片

复习C++_基础、函数、数组、字符串_第122张图片

 

复习C++_基础、函数、数组、字符串_第123张图片

复习C++_基础、函数、数组、字符串_第124张图片

复习C++_基础、函数、数组、字符串_第125张图片

 

复习C++_基础、函数、数组、字符串_第126张图片

 

复习C++_基础、函数、数组、字符串_第127张图片

 

复习C++_基础、函数、数组、字符串_第128张图片

 

复习C++_基础、函数、数组、字符串_第129张图片

 

复习C++_基础、函数、数组、字符串_第130张图片

 

复习C++_基础、函数、数组、字符串_第131张图片

复习C++_基础、函数、数组、字符串_第132张图片

 

复习C++_基础、函数、数组、字符串_第133张图片

 

复习C++_基础、函数、数组、字符串_第134张图片

 

复习C++_基础、函数、数组、字符串_第135张图片

 

复习C++_基础、函数、数组、字符串_第136张图片

 

复习C++_基础、函数、数组、字符串_第137张图片

 

复习C++_基础、函数、数组、字符串_第138张图片

 

复习C++_基础、函数、数组、字符串_第139张图片

复习C++_基础、函数、数组、字符串_第140张图片

 

复习C++_基础、函数、数组、字符串_第141张图片

 

复习C++_基础、函数、数组、字符串_第142张图片

 

复习C++_基础、函数、数组、字符串_第143张图片

 

 复习C++_基础、函数、数组、字符串_第144张图片

 

复习C++_基础、函数、数组、字符串_第145张图片

复习C++_基础、函数、数组、字符串_第146张图片

 

复习C++_基础、函数、数组、字符串_第147张图片

复习C++_基础、函数、数组、字符串_第148张图片

 

复习C++_基础、函数、数组、字符串_第149张图片 注意:形参数组不定义长度。

复习C++_基础、函数、数组、字符串_第150张图片

 

复习C++_基础、函数、数组、字符串_第151张图片

 

 

复习C++_基础、函数、数组、字符串_第152张图片

复习C++_基础、函数、数组、字符串_第153张图片

 

复习C++_基础、函数、数组、字符串_第154张图片

 

复习C++_基础、函数、数组、字符串_第155张图片

 

复习C++_基础、函数、数组、字符串_第156张图片

复习C++_基础、函数、数组、字符串_第157张图片

复习C++_基础、函数、数组、字符串_第158张图片

 

复习C++_基础、函数、数组、字符串_第159张图片

复习C++_基础、函数、数组、字符串_第160张图片

复习C++_基础、函数、数组、字符串_第161张图片

 

复习C++_基础、函数、数组、字符串_第162张图片

复习C++_基础、函数、数组、字符串_第163张图片

复习C++_基础、函数、数组、字符串_第164张图片

复习C++_基础、函数、数组、字符串_第165张图片

复习C++_基础、函数、数组、字符串_第166张图片

 

复习C++_基础、函数、数组、字符串_第167张图片

复习C++_基础、函数、数组、字符串_第168张图片

复习C++_基础、函数、数组、字符串_第169张图片

复习C++_基础、函数、数组、字符串_第170张图片

复习C++_基础、函数、数组、字符串_第171张图片

复习C++_基础、函数、数组、字符串_第172张图片

 

复习C++_基础、函数、数组、字符串_第173张图片

复习C++_基础、函数、数组、字符串_第174张图片

 

复习C++_基础、函数、数组、字符串_第175张图片

 

复习C++_基础、函数、数组、字符串_第176张图片

 

复习C++_基础、函数、数组、字符串_第177张图片

复习C++_基础、函数、数组、字符串_第178张图片

复习C++_基础、函数、数组、字符串_第179张图片

 

复习C++_基础、函数、数组、字符串_第180张图片

 

复习C++_基础、函数、数组、字符串_第181张图片

 

复习C++_基础、函数、数组、字符串_第182张图片

复习C++_基础、函数、数组、字符串_第183张图片

复习C++_基础、函数、数组、字符串_第184张图片

 

转载于:https://www.cnblogs.com/tianqizhi/p/9667197.html

你可能感兴趣的:(c/c++)