为什么允许字符串而数组不在此代码中?

Why strings are permitted while arrays are not in this code?

#include<stdio.h>
void function1(){}
int main(void)
{
  function1(1,0.45,'b',"I am trying");
  function1();
  return 0;
}

编译得很好。 但下面显示

Error: use arr in function1 first....

请注意,我正在使用 code::blocks IDE 并使用 .c 扩展名保存该文件。

#include<stdio.h>
void function1(){}
int main(void)
{
   function1(1,0.45,'b',"I am trying",arr[12]);
   function1();
   return 0;
}

抱歉,我把它称为数组时犯了一个错误。但是 {1,2,3,4} 这是一个你会同意的数组..但这也行不通。是错误还是什么?

第二种情况,

 function1(1,0.45,'b',"I am trying",arr[12]);

arr[12]是一个变量,arr本身没有定义,至少是一个数组。

在 C 中,您需要在使用前定义一个变量。

FWIW,

function1(1,0.45,'b',"I am trying");

有效,因为

  • 1 是一个 int 文字
  • 0.45double 文字
  • 'b'char 文字
  • "I am trying" 是字符串文字

其中none是一个变量