解释 C 编程中的编译时和运行时初始化?
让我们将数组的概念用于编译时和运行时初始化-
大批
数组是存储在连续内存位置和元素可以通过使用索引访问的项目的集合。
编译时数组初始化
在编译时初始化中,用户必须在程序本身中输入详细信息。
编译时初始化与变量初始化相同。数组初始化的一般形式如下-
语法
type name[size] = { list_of_values }; //整数数组初始化 int rollnumbers[4]={ 2, 5, 6, 7}; //浮点数组初始化 float area[5]={ 23.4, 6.8, 5.5,7.3,2.4 }; //字符数组初始化 char name[9]={ 'T', 'u', 't', 'o', 'r', 'i', 'a', 'l', '\0' };
示例
以下是一个显示数组的C程序-
#include输出结果void main(){ //Declaring array with compile time initialization// int array[5]={1,2,3,4,5}; //Declaring variables// int i; //Printing O/p using for loop// printf("显示元素数组:"); for(i=0;i<5;i++){ printf("%d ",array[i]); } }
显示元素数组:1 2 3 4 5
运行时数组初始化
使用运行时初始化用户可以在程序的不同运行期间有机会接受或输入不同的值。
它还用于初始化大型数组或具有用户指定值的数组。数组也可以在运行时使用scanf()函数初始化。
示例
以下是使用运行时编译计算数组中所有元素的总和和乘积的C程序-
#include输出结果void main(){ //Declaring the array - run time// int A[2][3],B[2][3],i,j,sum[i][j],product[i][j]; //Reading elements into the array's A and B using for loop// printf("Enter elements into the array A: \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("A[%d][%d] :",i,j); scanf("%d",&A[i][j]); } printf("\n"); } for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("B[%d][%d] :",i,j); scanf("%d",&B[i][j]); } printf("\n"); } //Calculating sum and printing output// printf("Sum array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ sum[i][j]=A[i][j]+B[i][j]; printf("%d\t",sum[i][j]); } printf("\n"); } //Calculating product and printing output// printf("Product array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ product[i][j]=A[i][j]*B[i][j]; printf("%d\t",product[i][j]); } printf("\n"); } }
Enter elements into the array A: A[0][0] :A[0][1] :A[0][2] : A[1][0] :A[1][1] :A[1][2] : B[0][0] :B[0][1] :B[0][2] : B[1][0] :B[1][1] :B[1][2] : Sum array is : 000 000 Product array is : 000 000