ابزار کاربر

ابزار سایت


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

به جز مواردی که ذکر می‌شود، مابقی محتویات ویکی تحت مجوز زیر می‌باشند: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki