C语言教程:工程化方法 2011CH2.ppt

  1. 1、本文档共122页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言教程:工程化方法 2011CH2

结构体是构造数据类型,因此也可以定义结构体数组,定义结构体数组方法跟定义其它数组一样: [struct] 结构体类型名 数组名[n]……; 也可以定义多维数组: [struct] 结构体类型名 数组名[n1][n2]……; 结构体数组与前面讲的数组的唯一区别就是结构体数组的每个元素是一个结构体变量而已。 * 问号表达式会根据a表达式的值为真或假而选择计算表达式b或c,因此建议不要在表达式b和c中进行会产生副作用的运算。 * * * 【例2-35】: static int a[ 5 ] = { 1,2,3,4,5}; 和 static int a[ ] = { 1,2,3,4,5}; 完全等价。 * 使用数组元素的一般形式为: 数组名[下标] * #define PI 3.14 #define NUM 10 double radius[ NUM ]; int main(){ //给数组元素赋值 radius[ 0 ] = 2.1; radius[ 1 ] = 3.0; radius[ 2 ] = 1.9; radius[ 3 ] = 2.23; radius[ 4 ] = 23; radius[ 5 ] = 32.1; radius[ 6 ] = 4; radius[ 7 ] = 10.0; radius[ 8 ] = 8; radius[ 9 ] = 100;? //输出圆的面积 for( int i = 0; i NUM; i++ ){ //使用数组中的元素 printf( “S%d = %d\n”,i, PI * radius[ i ] * radius[ i ] ); } return 0; } * 数组必须先定义,后使用。 数组下标可以是常量或变量,但必须是整数,如果为小数,编译器将自动取整。 数组不能作为整体进行使用,只能对其元素逐个进行访问。例如要输出10个圆的半径,不能用一条语句:printf( “%d\n”, a)完成,而必须用一个循环来实现。也不能象初始化那样同时为数组中的多个元素进行赋值。 编译器不对数组下标做越界检查,即使程序中或运行时出现了对a[11]的访问,C编译器并不能检查出错误,如果对a[11]进行赋值,将引发运行时错误。 * 用char类型定义的数组就是字符数组。 【例2-37】: char c1[10]; char c2[5][10]; static char c3[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`}; * 字符串常量是不可修改的,为了能对字符串进行某些修改或编辑,就必须把字符串常量存放在某个变量中,而C语言中没有字符串变量,故用字符数组来存放字符串。 * 把字符串“This is a string.”存放到字符数组中: char c1[18] = { ‘T’, ’h’, ’i’, ’s’, ’ ‘, ’i’, ’s’,’ ‘, ’a’, ‘s’, t’, ’r’, ’i’, ’n’, ’g’, ’.’, ‘\0’}; char c2[18] = {“This is a string.”}; char c3[] = “This is a string.”; * 把字符串常量赋给字符数组,只能在数组初始化时进行。 printf 函数中的格式字符串“%s”, 表示输出的是一个字符串,该串必须以‘\0’结尾。 与格式串%s对应的变量是要输出的字符串的首地址,如果是数组就用数组名代替。 定义的字符数组至少要比字符串的字符数多一个字节,用来存放字符串结束标志。如果上例中的c1中不存放最后的’\0’,那么c1就只能当做字符数组使用,而不能当做字符串来使用。因为用printf、scanf等库函数时,使用字符串方式更加方便。 * char c1[] = { H,e,l,l,o};//字符数组方式 char c2[] = Hello;//字符串方式 int main(){ // 输出字符串 printf( %s\n, c2); // 输出字符数组 for( int i = 0; i sizeof( c1 ); i++ ) { printf( %c, c1[i] ); } printf( \n ); // 请考虑如下语句将输出什么 printf( %s, c1 ); return 0; } 【运行结果】: Hello Hello HelloHello * 数组中的元素是个一维数组,称其为二维数组。 * 定义二维数组的一般形式为: 类型区分符 数组名[n1][n2]…… 【例2-40】用二维数组来存放4个学生,3门课的成绩: int g[4][3]; * 数组中所有元素的数据类

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档