一、二维数组入参
参考:https://blog.csdn.net/minzhimo4854/article/details/89303797
(1)方法一:简单干脆地传入二维数组名,对于实参,若为数组定义,需要强制转换;转换后利用一维数组的方式取数;若为动态内存申请,不需要强制转换;主要是在题目中出现时,需要知道如何处理,实际使用比较麻烦,不推荐
(2)方法二:直接传入数组,包含一维、二维长度,简单、直白,但是限制较多,不推荐
#define arrSize1 5
#define arrSize2 3
void PrintArrTwo2(int arrTwo[arrSize1][arrSize2]) {
printf("arrTwo = %d\\n", arrTwo[0][0]);
}
int main(void)
{
int arrTwo[arrSize1][arrSize2];
int arrSize = arrSize2;
for (int i = 0; i < arrSize1; i++) {
for (int j = 0; j < arrSize2; j++) {
arrTwo[i][j] = i * arrSize2 + j;
}
}
PrintArrTwo2(arrTwo);
system("pause");
return 0;
}
(3)方法三:固定低维,放开高维,既灵活又容易调用,推荐
void PrintArrTwo3(int arrTwo[][arrSize2], int arrSize) {
printf("arrTwo = %d\\n", arrTwo[0][0]);
}
int main(void)
{
int arrTwo[arrSize1][arrSize2];
int arrSize = arrSize2;
//TODO:其他处理
PrintArrTwo3(arrTwo, arrSize);
system("pause");
return 0;
}
二、字符串的拼接-安全函数
(1)strcpy:字符串复制
(2)strcat:字符串拼接
(3)itoa:整数转化成字符
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define arrSize1 50
#define arrSize2 20
int main(void)
{
char arrOne[arrSize1];
char arrTwo[arrSize1] = "hao are you?";
char arrThree[arrSize1] = " I\'m fine. Thanks\\n";
int num = 100;
char arrNum[arrSize1];
//复制
strcpy(arrOne, arrTwo);
printf("%s\\n", arrOne);
//拼接
strcat(arrOne, arrThree);
printf("%s\\n", arrOne);
//数字转化成字符:入参为 数字,字符串地址,进制
itoa(num, arrNum, 10);
printf("%s\\n", arrNum);
system("pause");
return 0;
}
注: strcpy和strcat内部也是对字符的操作,以‘\\0’作为字符串结束的标志。