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

标签 arrays c constants ascii string-literals

这个问题我有两个部分。

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 <stdio.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 );
}

但是数组中不能包含不同类型的元素。

因此,对于这样的构造 {1,2,3,"test"} 您需要将字符串文字拆分为单独的字符,例如 {1,2,3, 't' , 'e', 's', 't'}

关于arrays - 在 C 中传递混合 const 整数 ASCII 值和 const char 数组,并在没有先前声明的情况下传递 const int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61049440/

相关文章:

python - 枚举超过 2 个相同形状的数组

javascript - 为什么添加新属性时数组的长度没有改变?

c - 制定隐式规则和头文件

c++ - 如何在 C++ 中的 const 覆盖函数中调用非 const 函数

c - C 中如何处理常量结构成员?

java - 通过对数组进行排序来创建排名列表

c - 两个数组相加

c - 给定代码中逻辑错误在哪里?

unit-testing - 使用 Enzyme + React Native + Jest 进行测试时常量未定义

java - 使用数据库中的所有表填充 jcombobox