内容正文:
第7章 数组
7.1一维数组
7.2二维数组
7.3多维数组
7.4字符串与字符数组
7.6数组作为函数参数
7.5字符串数组
大学C/C++语言程序设计程序设计 第7章 数组
1-12章幻灯片45分钟 13-27章45分钟
7.5 字 符 串 数 组
字符串数组本身为字符二维数组:
char name[3][10];
/50
大学C/C++语言程序设计程序设计 第7章 数组
char name[3][10];
name可以看成有3个元素:
name[0],name[1],name[2]
每个元素都是一个最多可存放10个字符的一维字符数组。
因此,可以认为:二维字符数组的第一个下标决定了字符串的个数;第二个下标决定了字符串的最大长度。所以字符二维数组也看成一个字符串数组。
/50
大学C/C++语言程序设计程序设计 第7章 数组
字符串数组的存储结构
char name[3][10]={“zhangsan”,“lisi”,“wangwu” };
各元素的存储情况如下图所示:
z h a n g s a n \0
l i s i \0
w a n g w u \0
/50
name[0]
name[1]
name[2]
大学C/C++语言程序设计程序设计 第7章 数组
【例7.15】 分析下面的程序。
#include<stdio.h>
main( )
{ char p[3][4]={"ABC","DEF","GHI"};
int i;
for(i=0;i<3;i++)
puts(p[i]); //输出第i串字符
printf("
");
for(i=0;i<3;i++)
printf(“%s”,p[i]); //输出第i串字符
}
运行结果:
ABC
DEF
GHI
ABCDEFGHI
p[i] 为第i行的起始地址,可用
puts(p[i])或 printf(“%s”,p[i])
表示输出第i行的字符串
大学C/C++语言程序设计程序设计 第7章 数组
7.6 数 组 与 函 数
问题:编写函数sumall,功能:求4个实数之和。
float sumall(float a,float b,float c,float d)
{
return (a+b+c+d);
}
主函数怎样给sumall函数传递实参。
大学C/C++语言程序设计程序设计 第7章 数组
/50
例7.16利用函数求4个实数之和
#include <stdio.h>
float sum(float a,float b,float c,float d)
{ return (a+b+c+d);
}
main()
{ float sum;
float a0=2.1,a1=3.45,a2=7.8,a3=15.4;
sum=sum(a0,a1,a2,a3);
printf(“sum=%f”,sum);
}
#include <stdio.h>
float sumall(float a,float b,float c,float d)
{ return (a+b+c+d);
}
main()
{ float sum;
float a[4]={2.1,3.45,7.8,15.4};
sum=sumall(a[0],a[1],a[2],a[3]);
printf(“sum=%f”,sum);
}
单向值传递
大学C/C++语言程序设计程序设计 第7章 数组
1.数组元素作函数实参——单向值传递
当调用函数时,数组元素可以作为实参复制给形参,形参和实参分别占用不同的存储单元,只能将实参的值传给形参,而不能将形参的值传给实参,形参值的改变不影响其对应的实