Tag: 参数

为什么返回指向局部变量或参数的指针是不好的做法?

我在学习指南中发现了这个问题,我不确定为什么返回指向局部变量/参数的指针会很糟糕。 有任何想法吗?

我们何时需要将数组的大小作为参数传递

关于在C / C ++中传递数组我有点困惑。 我看到一些签名就像这样的情况 void f(int arr[]) 有些是这样的 void f(int arr[], int size) 任何人都可以详细说明有什么区别以及何时以及如何使用它?

我可以在sqlite3中使用表名的参数吗?

我有一些奇怪的感觉abour sqlite3 参数 ,我想透露给你。 这是我的查询和失败消息: #query ‘SELECT id FROM ? WHERE key = ? AND (userid = ‘0’ OR userid = ?) ORDER BY userid DESC LIMIT 1;’ #error message, fails when calling sqlite3_prepare() error: ‘near “?”: syntax error’ 在我的代码中它看起来像: // Query is a helper class, at creation it does an sqlite3_preprare() Query q(“SELECT id […]

用于计算参数数量的宏

我有来自第三方C库的可变参数函数: int func(int argc, …); argc表示传递的可选参数的数量。 我正在使用宏来计算参数的数量,如此处所示 。 为方便阅读,这里是宏: #define PP_ARG_N( \ _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \ _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, \ _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, \ _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, […]

C程序中的命令行参数?

如何在C中读取命令行参数? 例如,在 ./test –help 要么 ./test –build 我如何访问“–build”或“–help”?

将数组和矩阵传递给函数作为指针和指向C中的指针

给出以下代码: void foo( int* array ) { // … } void bar( int** matrix ) { // … } int main( void ) { int array[ 10 ]; int matrix[ 10 ][ 10 ]; foo( array ); bar( matrix ); return 0; } 我不明白为什么我会收到这个警告: 警告:从不兼容的指针类型传递’bar’的参数1 虽然’foo’电话似乎没问题。 谢谢 :)

C函数const多维数组参数中的奇怪警告

我对这段代码有一些奇怪的警告: typedef double mat4[4][4]; void mprod4(mat4 r, const mat4 a, const mat4 b) { /* yes, function is empty */ } int main() { mat4 mr, ma, mb; mprod4(mr, ma, mb); } gcc输出如下: $ gcc -o test test.c test.c: In function ‘main’: test.c:13: warning: passing argument 2 of ‘mprod4’ from incompatible pointer type test.c:4: note: […]

将字符串解析为argv / argc

在C中是否有办法解析一段文本并获取argv和argc的值,就像文本已经在命令行中传递给应用程序一样? 这不一定适用于Windows,只需要Linux – 我也不关心引用参数。

参数传递C – 指针,地址,别名

有人可以解释一下C参数传递的区别吗? 根据教授的说法,有4种不同的传递参数的方法 呼叫按值 地址呼叫(指针) 调用 – 别名 全局变量/静态变量 如果你能举一个例子,我将非常感谢,你的工作将受到赞扬。

指针作为C中的函数参数

如果我有这个代码,例如: int num = 5; int *ptr = # 以下两个function有什么区别? void func(int **foo); void func(int *foo); 我在哪里调用函数: func(&ptr); 我意识到两者的前者将指针指向一个参数,而第二个只取一个指针。 如果我传入func(&ptr) ,我实际上是在传入一个指针。 指针指向另一个指针有什么区别? 我相信后者会给出一个不兼容的警告,但只要你知道你在做什么,似乎细节无关紧要。 似乎可能为了可读性和理解,前者是更好的选择(2星指针),但从逻辑的角度来看,有什么区别?