二维数组
在C语言中并补直接支持多维数组,包括二维数组。多维数组的声明是使用一维数组声明实现的。一个一维数组的每个元素又被声明为一维数组,从而构成二维数组。二维数组是特殊的一维数组。
注意事项:
1)数组名不能和变量名同名
2)数组长度可以是常量表达式
3)int [m][n] 这中方法是Xcode特有的
4)数组长度可以使用宏定义
二维数组初始化
1)定义的同时初始化
(1)完全初始化
int a[]2[3] = {{1,2,3},{11,22,33}}; //分段
int a[2][3] = {1,2,3,4,5,6}; //连续
int a[][3] = {{1,2,3},{22,33,44},{11,11,11}}; //可以省略第一维
int a[][3] = {1,2,3,4,5,6,7,8,9}; //int a[3][3]
(2)部分初始化
int a[3][4] = {0}; /一般用于给数组初始化为0
int a[3][4] = {{1},{2},{3}};
1 0 0 0
2 0 0 0
3 0 0 0
int a[3][4] = {1,2,3,4,5};
1 2 3 4
5 0 0 0
0 0 0 0
2 先定义再初始化
int a[2][3];
a[0][0] = 1; a[]0[1] =2;............
注意:二维数组中,第一维可以省略,不可以省略第二维的长度
查找一个字符串中某个字符首次出现的位置
代码实现:
#include <stdio.h>
int searchPos(char arr[],char key){
for (int i=0; arr[i]!='\0'; i++) {
if(arr[i] == key){
return i;
}
}
return -1;
}
int main(int argc, const char * argv[]) {
//定义一个字符串
char str[] = "dsgadsfgsdgssfsd";
char key = 's';
int pos = searchPos(str,key);
printf("%d\n",pos);
return 0;
}