第五章 程序结构

返回值

系统自动生成返回值的副本,该副本可以在程序中的返回点获得

函数原型声明

除非函数的定义在相同源文件的前面,否则必须使用函数原型声明(通常在#include和using之后):

#include <iostream>

using namespace std;

double power(double x,int y);  //函数原型声明,形参可以和函数实现不同甚至只写double,int

int main()

{

x=power(y,z);

}

double power(double x1,int y1)   //函数实现

{}

函数传递实参的两种形式:

一、形参是普通变量(不是引用)

1.按值传递机制

实参根本没有传递给函数,而是和实参具有相同值的副本传递给函数,所以函数的执行并不会影响实参:

int x=1;

int change(x);

不管change函数如何,int x都不会被改变

2.给函数传递指针实参

传递的是和实参指针存储相同地址的指针副本,因为指向的地址相同,所以可以改变被指向的地址

例:

void change(int*);

int main()

{

int x=10;

int* px=&x;

change(px);

cout<<*px<<endl;

}

void change(int* px)

{

*px+=10;

}

结果:

10

3.给函数传递数组

实质上是给函数传递指针,传递指针副本(编译器将数组名转换为指针)而不是数组副本(复制数组需要很大开销)

void change(int [],int);

int main()

{

int x[]={1,2,3,4,5};

int count=sizeof x/sizeof x[0];

change(x,count);

for(int i=0;i<count;i++)

{

cout<<x[i]<<" ";

}

}

//void change(int arrayx[],int count)

void change(int* arrayx,int count)      //和上等价

{

for(int i=0;i<count;i++)

{

arrayx[i]+=1;

}

}

结果:2 3 4 5 6

4.多维数组

本地C++的多维数组的本质为数组的数组,所以传递的同样是指针副本(如二维数组传递的是指向第一行地址的指针副本)

例:

void change(int [][4],int);

int main()

{

int x[][4]={{1,2,3,4},{5,6,7,8}};

int count=sizeof x/sizeof x[0];

change(x,count);

for(int i=0;i<count;i++)

{

for(int j=0;j<4;j++)

{

cout<<x[i][j]<<" ";

}

cout<<endl;

}

}

void change(int arrayx[][4],int count)

//也可以写成void change(int (*arrayx)[4],int count)然后下面用++*(*(arrayx+i)+j);的形式,函数原型声明也要改成相应形式

{

for(int i=0;i<count;i++)

{

for(int j=0;j<4;j++)

{

++arrayx[i][j];

}

}

}

结果:

2 3 4 5

6 7 8 9

二、给函数传递引用实参

形参为实参的别名,消除的对实参的复制,允许函数直接访问调用函数中的实参

使用类类型的对象时很有用,因为复制很大的类的类对象要耗费很多时间

例:

void change(int&);

int main()

{

int x=10;

change(x);

int y=20;

change(y);

cout<<x<<" "<<y<<endl;

}

void change(int &x)

{

cout<<"receive"<<x<<endl;  //输出的是值而不是地址

x++;

}

结果:

receive10

receive20

11 21

注:

引用的基本属性:声明并初始化引用之后,不能将其重新分配给另一个变量。但是这里美执行一次函数都初始化一个新的引用

第五章 程序结构

时间: 2024-08-25 16:30:29

第五章 程序结构的相关文章

程序设计基础 第五章 选择结构的程序设计(知识点)

第五章  选择结构的程序设计 第一部分: 总结 1根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构 2C语言的选择语句包括if 和switch语句 3使用break语句,可以中断switch语句的执行. 4使用goto 语句,可以将程序执行流程无条件专项. 第二部分: 分别简述 5.1用if语句设计选择结构程序 5.1.1  简单的if语句 使用条件:满足条件就执行,不满足就不执行. 格式: If(表达式){语句1} 5.1.2    if_else语句 格式: If(表达

第五章 循环结构

第五章  循环结构 英语新识: while  循环 do  执行 index  牵引 bug  错误 debug  调试 equal  相等 step  步骤 error  错误 结构框图: 语法新知: 一: while: int num=0; while(  i<4){ System.out.println(" "); i++; } 二: do-while: do{ System.out.println (" "); }while(!"y"

第五章 循环结构课后反思

#include <stdio.h> main() { int a,b,c,d,e,f; for(a=1;a<=5;a++) { for(b=1;b<=(5-a);b++) printf(" "); for(c=1;c<=(2*a-1);c++) printf("*"); printf("\n"); } for(d=1;d<=5;d++) { for(e=1;e<=d;e++) printf("

第五章 循环结构(一)

一.本章目标 理解循环的含义 会使用while循环结构 会使用do-while循环结构 会使用调试解决简单的程序错误 二.内容 1 循环结构 1.1 为什么需要循环结构 问题: 张浩Java考试成绩未达到自己的目标.为了表明自己勤奋学习的决心,他决定写一百遍"好好学习,天天向上!" 普通做法: System.out.println("第1遍写:好好学习,天天向上!"); System.out.println("第2遍写:好好学习,天天向上!");

Java 第五章 循环结构(二)学习笔记

1.for语法: for(1参数初始化,2,条件,3,参数叠加){ 4.循环操作 } 2.break:改变程序的控制流,多用于循环中,结合条件机构和分支结构一起使用. 作用,跳出整个循环: continue:只能用于循环中,跳过循环中剩下的语句,去执行下次循环. 作用:结合当前循环,进入下一下循环: 3.while for它俩的区别是: whlie :先判断在执行. do-while:先执行在判断. for:先判断在执行 使用场景为:确认循环次数的时候. 4.使用循环步骤: 确认循环条件和循环体

C语言 第五章 循环结构

一.for 二.while 三.do while 四.continue 五.break 一.for 请在屏幕上输出1000个*号 printf("*************************...."); #include "stdio.h" void main() { int i; for(i=1;i<=1000;i++){ printf("*"); } } for(表达式A:表达式B:表达式C){要重复执行的代码块D;} 1.表达

第五章 循环结构反思

练手篇:   刚刚开始练手循环结构,肯定柿子要挑软的捏.于是我拿了第一个,开始练手之旅.     按照老师开始讲的例题,我一开始先想的是这个图形应该可以分成两部分来考虑比较简单.第一部分为i<=4,第二部分为i<=5.然后考虑的是行,列之间的关系第一部分分成空格和*,所以先考虑输出空格的数量关系,空格数为4,3,2,1,所以for应该写j=1:j<=5-i;j++,其次考虑*的数量关系1,3,5,7所以for应该写k=1;k<=2*i-1;k++.然后考虑第二部分的for就很简单了

第五章 循环结构(一)

while循环结构的特点: 1.循环不是无休止的,满足条件循环停止,循环条件不满足时,跳出循环 2.循环结构是反复进行的一系列操作 3.先判断,后执行 语法 while(循环条件){ 循环操作 } 举例 //声明变量并赋初始值 int i=1; while( i <=100 ){   //循环条件是一个表达式,它的值是boolean类型 ,即"true"或"false" System.out.println("好好学习");   //{}中

c语言第五章-循环结构I

需要多次重复执行一个或多个任务的问题考虑使用循环来解决while循环:格式:while(条件表达式){    循环体      }循环三要素:初始化.条件表达式.增量条件表达式必须是可改变的量,否则可能形成死循环while和do while的区别:while循环先判断条件是否为真,再决定是否执行循环体do while循环是先执行一次循环体,再判断当条件为假时,do while比while多执行一次循环嵌套循环:外打行,内打列只有内循环执行完毕,外循环才会执行一次循环结构的特点是,在给定条件成立时