gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:16:05 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to pass a constant array literal to a function that takes a pointer without using a variable C/C++?

(9 个回答)


去年关闭。




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

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com