如何跨函数全球化和操作字符数组
How do i globalize and manipulate a character array across functions
我试图通过对将要更改的函数调用的各种访问来维护我的多维字符数组的内容。我该怎么做。我需要将数组传递给函数吗?如果是这样,我该怎么做。但是我尝试遇到语法错误。这是我的函数声明
void board(int,int,int);
是否需要添加对多维字符数组的引用?
char piece[3][3];
当我调用函数时,如何将其传递给数组?
board(whichplayer,rownum,columnnum);
在函数本身中,如何添加它并使用它并声明它?
void board(int movesquare, int row, int column)
{
//...
}
如果您的数组被声明为全局变量,那么在声明的同一文件中的每个函数中,您不必将数组作为函数参数传递。
例:
char myArray[3][3];
void some_function(int var1,int var2);
int main(void)
{
some_function(2,3);
.
.
.
}
void some_function(int var1, int var2)
{
extern int myArray[][3]; /* not necessary but just a reminder that
you will use global variable in your function,
size not necessary because this information in given
in declaration on top */
myArray[var1][var2]=x; /* legal to modify global array */
.
.
.
}
如果你不希望myArray是全局的(由于很多原因,很多人会告诉你不要),你必须将该数组作为参数传递给你的函数。
示例 2:
void some_function(char passed_array[][3],int size,int var1, int var2)
/* array will be treated as pointer to 1d 3-elements array of chars,
so empty first size is unnecessary in first argument,
but you will probably want to know what's the
true size so you pass it as 2nd argument to function */
int main(void)
{
char myArray[3][3];
some_function(myArray,3,1,1);
.
.
.
}
void some_function(char passed_array[][3],int size, int var1, int var2)
{
passed_array[var1][var2]=x; /* passed_array is a pointer so changes made here
will be visible as changes in myArray in main */
.
.
.
}
相关文章:
- 对字符数组中的元素执行逐位操作
- 位移操作和位掩码未检测到重复字符
- 字符串操作 - 字符计数
- 字符的输入/输出操作
- 从格式化输入操作中获取读取字符数
- 使用字符数组堆叠。如何执行"+"和"*"操作?
- 如何使用字符在 cpp 中操作 JPEG
- 打开一个文件,修改每个字符,然后执行反向操作不输出原始文件
- 如何将字符 a= '+'(或字符串 []) 变成实际操作?
- C++-使用get()后如何操作字符
- 将字符数复制到新字符串位置的字符串操作,例如 S[0]
- 在最少的操作中实现字符串所有字符的相同频率。(所有字符的范围从'a'到"z")
- 如何在字符级别操作Unicode字符串
- 操作多字节字符的字符串
- 关于"无符号字符"和"移位"操作的迷你问题?
- C++使用逐位操作从图像中提取字符
- 从 C++ 中的函数操作字符数组缓冲区
- Qt - 在像素操作后显示无符号字符
- 如何跨函数全球化和操作字符数组
- 如何在函数中操作字符数组(字符串)的指针,该指针在C / C ++中作为参数传递