c-programming:functions:variable-length-array-parameters
Variable-Length Array Parameters (C99)
#include <stdio.h> int main(void) { int n = 1; do { int a[n]; // re-allocated 10 times, each with a different size printf("The array has %2ld elements\n", sizeof(a)/sizeof(*a)); // %2zu ??? } while(n++ < 10); return 0; }
#include <stdio.h> int sum_array(int n, int a[n]); //int sum_array(int n, int a[]); //int sum_array(int n, int a[*]); //int sum_array(int, int [*]); //int sum_array(int, int []); int main() { int arr[] = {1, 2, 3, 4, 5}; printf("Total = %d\n", sum_array(5, arr)); return 0; } int sum_array(int n, int a[n]) // order of parameters matter { int sum = 0; while(n-- > 0) sum += a[n]; return sum; }
#include <stdio.h> int sum_array(int n, int m, int a[n][m]); //int sum_array(int n, int m, int a[][m]); //int sum_array(int n, int m, int a[*][*]); //int sum_array(int n, int m, int a[][*]); int main() { int arr[3][5] = { {1, 2, 3, 4, 5}, {10, 20, 30, 40, 50}, {100, 200, 300, 400, 500} }; printf("Total: %d\n", sum_array(3, 5, arr)); return 0; } int sum_array(int n, int m, int a[n][m]) // order of parameters matter { int sum = 0; while(n-- > 0) for(int i = 0; i < m; i++) sum += a[n][i]; return sum; }
#include <stdio.h> void concatenate(int n, int a[n], int m, int b[m], int c[n+m]); //void concatenate(int n, int a[*], int m, int b[*], int c[*]); //void concatenate(int n, int a[], int m, int b[], int c[]); //void concatenate(int, int [], int, int [], int []); int main() { int x[5] = {1, 2, 3, 4, 5}; int y[3] = {100, 200, 300}; int z[8] = {0}; concatenate(5, x, 3, y, z); for(int i = 0; i < 8; i++) printf("%d ", z[i]); printf("\n"); return 0; } void concatenate(int n, int a[n], int m, int b[m], int c[n+m]) // order of parameters matter { int k = 0; for(int i = 0; i < n; i++, k++) c[k] = a[i]; for(int i = 0; i < m; i++, k++) c[k] = b[i]; }
c-programming/functions/variable-length-array-parameters.txt · آخرین ویرایش: 2024/04/19 17:56 توسط pejman
