不仅静态存储类型的变量不应该被函数的返回值初始化,因为它们不被认为是常量吗?按照那个论点,下面的声明在 C 中是否有效。它编译时没有错误或警告,并输出正如预期的那样。
#include <stdio.h>
#include <string.h>
int main ()
{
int arr[2]={strcmp("a","a"),strcmp("3","5")};
printf("%d,%d",arr[0],arr[1]);
}
Result
0,-1
不仅静态存储类型的变量不应该被函数的返回值初始化,因为它们不被认为是常量吗?按照那个论点,下面的声明在 C 中是否有效。它编译时没有错误或警告,并输出正如预期的那样。
#include <stdio.h>
#include <string.h>
int main ()
{
int arr[2]={strcmp("a","a"),strcmp("3","5")};
printf("%d,%d",arr[0],arr[1]);
}
Result
0,-1