在C中传递混合的const整数ASCII值和const char数组,并在没有先前声明的情况下传递const int

问题描述 投票:1回答:1

我对这个问题有两个部分。

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);我知道这是行不通的,但是有没有一种语法上正确的方法来进行此操作。

c arrays ascii const
1个回答
0
投票

回答第一个问题,我可以说您可以使用复合文字。例如

#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 );
}

但是您不能拥有包含不同类型元素的数组。

© www.soinside.com 2019 - 2024. All rights reserved.