若定义一个二维数组intB[4][5];说出以下三个表达式的含义:*(*(B+2)+0)B数组中第2行第0列元素的值。类型是int 。
*(B+2)B数组中第2行的首址,仍是一维数组的首址。类型是int[5]。*( )的作用是将二维降为一维。该表达式能计算出一个地址,就是B[2][0]的地址,但类型是int [ ] [5]的,没降维。
16
B2B+2以下程序有什么问题?
声明Array[],Table[]INT8Ufunc(void){INT8Ui,j;ij;j=DEFAULT;//变量使用前要确保初始化。i=0;i<100;i++){for(if(9==Array[i]){j=Table[i];}}return(j);}17
“打印杨辉三角形”是一道综合应用数组基本知识的典型例题。
18
打印杨辉三角形(打印10行)
分析:杨辉三角形特点是每个元素都等于它正上方与左上方数之和,于是可以计算出除第一列第一行外的所有元素。如何设置第一列成为本题关键。利用二维数组可以对部分元素赋值的性质,对数组初始化:11 0 0 0 …… 01 11 0 0 0 …… 0 00001 2 110 0 0 …… 01 3 3 1…… 1 4 6 4 1……1 5 10 10 5 110 0 0 …… 0::::::即int a [10][10]={{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}} ;[][]{{},{},{},{},{},{},{},{},{},{}};这样就可以得到
第一列全1,其余全0的二维数组。
19
字符数组应用
例
输入一行字符,统计其中单词个数。分析:首先要定义一个数组把一行字符装进去;再利用计数器对单词的个数计数。关键是什么时候开始计数。扫描该数组,若当前字符非空格,前一个字符也非空格,表示一个单词还没读完;若当前字符空格,前一个字符也是空格,表示一个单词还没开始;一个新单词的开始应该是当前字符非空格而前一个字符为空格,此时应该计数;一个单词读完时,不要重复计数。
I am a student.\\0
20
C语言中级培训教程—再谈数组 - 图文



