为什么我会看到一些使用CStrings不同声明的代码.
有些人使用这种格式
char a_c_string [];
Run Code Online (Sandbox Code Playgroud)
而其他人使用
CString another_c_string;
Run Code Online (Sandbox Code Playgroud)
有区别吗?我发现的所有引用都CStrings像我在第一个例子中所做的那样声明它,我只看到它在论坛上以其他方式完成,人们在这里举例说明.
所以我有几个问题.首先,我如何将3D数组传递给函数.我需要传递整个数组,因为函数是运行循环以将数组的内容输出到文件.这就是我现在拥有的
int array[5][3][3]
void function(int a[5][3][3])
{
//...
}
void function(array); //or void function(array[5][3][3]);
Run Code Online (Sandbox Code Playgroud)
我找到了一种方法,使用指向数组的指针使其工作,但是我问过我的老师,他不希望我们使用指针.
我的第二个问题是,如果我打算修改函数内的全局变量,我不需要将它传递给函数吗?我可以在函数内部使用它,就像我在main里面一样?
我现在遇到的另一个问题是将数组中的单个值传递给函数.
在循环中,我需要从数组[i] [j] [2]中提取一个值(i和j是外部和内部循环的索引)并将其传递给函数以评估它是否大于90这是为了学校作业,所以要了解我必须满足的某些规范.(就像不使用指针,传递整个数组,并从数组中传递一个值,因为作为一个类,我们还没有学会如何使用指针)
将结构传递给函数时,原型/标题会是什么样子?将结构成员传递给函数时,它们会是什么样子?
例如...
struct a_struct{
int a;
int b;
};
a_struct point;
void f1(a_struct)
void f2(a_struct)
Run Code Online (Sandbox Code Playgroud)
并且假设我想将整个结构传递给f1,但只是f2的成员.我会使用数据类型a_struct作为参数吗?或者f2会有不同的数据类型,因为我只传递一个int成员.对于一系列结构,这会有所不同吗?我负责编写的程序应该使用结构数组.我认为这不会产生太大的影响,除非它会自动通过引用传递.
我想对一类"歌曲"数据类型进行排序
class song{
std::string artist;
std::string title;
std::string size;
public:
};
Run Code Online (Sandbox Code Playgroud)
我知道可以使用bool运算符重载>但如果我想按艺术家排序,然后按标题排序,然后按大小排序,有什么方法可以指定比较顺序吗?
我的问题是关于C系统调用的exec系列.我如何预测正在执行的程序正在寻找什么类型的输入,因为exec系列在字符串列表arg1,arg2,arg3 ...和参数的2d char数组之间变化.大多数Linux命令行程序可以处理两种形式的输入吗?
例如:
int execl(const char *path, const char *arg0, ... /*, (char *)0 */);
int execv(const char *path, char *const argv[]);
Run Code Online (Sandbox Code Playgroud)
如果我执行ls会发生什么:
execl('/bin/ls', 'ls', NULL);
Run Code Online (Sandbox Code Playgroud)
与:
execv('/bin/ls', lsArgsArray);
Run Code Online (Sandbox Code Playgroud)
大概ls可以处理两种形式的输入,但我真正的问题是关于其他实用程序的通用,是否可以安全地假设你可以以任何方式调用它们?如果使用任何一种方法调用都不安全,那么bash会如何区分使用哪种?