假设有定义int nums[10][20]
二维数组行数可以用sizeof计算:
rows = sizeof(nums)/sizeof(nums[0])
第二个问题,为什么gets会提示未定义标识,有两种可能:
一、编译器支持gets库函数,但是你没有包含头文件#include<stdio.h>;
二、编译器本身不支持gets库函数,因为gets函数是一个不安全函数,容易导致数组越界,所以很多编译器都不再有这个库函数了。取而代之的是gets_s或者fgets这类相对安全的函数,可以试试。
首先你要看懂程序。大概来讲这个程序是用来生成一个文本文件,文件名和内容都由用户输入。%s不接收回车符,scanf语句中输入的文件名+回车符(回车用以确认)在scanf s%中只接收到文件名的最后一个字符为止,回车符还在缓存里。
后面是要用户输入文件内容,每输入一个,向文件里写一个,并且在屏幕上打印一个。getchar从流中读取单个字符,只用一个的话接收到的回车符是不要的,所以直接再用一个覆盖掉。
之后进入写文件的循环,直到输入#退出。
是个3*4的二维数组,即三行四列{0,1,2,3},{4,5,6,7},{8,9,10,11}
分别表示第一行到第三行的元素。即第一行元素值:a[0][0]=0,a[0][1]=1,a[0][2]=2,
a[0][3]=3,分别对应第一个花括号{0,1,2,3},以此类推。
这是前人规定的,不是以我们意志转移的,这个是在赋初值啊!