我对这个问题有两个部分。
1:如果我想将const int数组传递给函数,通常我会这样做。
const int array[3] = {1,2,3};
somefunction(array,3);
但是我想以一种更简单的方式做到这一点,就像您可以使用字符串一样。
somefunction("abc",3);
对于类似somefunction({1,2,3},3);
的东西,我知道这是行不通的,但是在语法上有正确的方法吗?
2:如果上一个问题是可能的,则回答该问题。有没有一种方法可以在const字符串中混合ascii值。喜欢...somefunction({1,2,3,"test"},7);
我知道这是行不通的,但是有没有一种语法上正确的方法来进行此操作。
回答第一个问题,我可以说您可以使用复合文字。例如
#include <stio.h>
void f( const int a[], size_t n )
{
for ( size_t i = 0; i < n; i++ )
printf( "%d ", a[i] );
putchar( '\n' );
}
int main(void)
{
f( ( int[] ) { 1, 2, 3 }, 3 );
}
但是您不能拥有包含不同类型元素的数组。