------<Java培训、Android培训、iOS培训、.Net培训>、期待与您交流! -------
1.数组的格式
元素类型 数组名[元素个数] int ages[3];
2.数组的初始化
1>直接赋值,int b[3];
b[0] = 10;
b[1] = 23;
b[3] = 43;
2>用大括号一次性赋值,int a[3] = {10 , 23 , 42};
3>不定义c的具体数量,大括号有几个数据,[]就为几,int c[] = {10 , 23 , 42];
4>int d[5] = {12 , 21 , 23 ];这种形式只是给这个数组的前三个元素赋值。
5>int e[5] = {e[3] = 23 , e[4] = 24 };这种形式给后数组最后面两个元素赋值。
6>int a=5;
int ages[a] ;
ages[0] = 1;
ages[1] =2;
ages[2] = 3;这种形式可以 ,但是无法确定后面两元素的值。
3 .错误写法
int a[];这种写法无法分配存储空间;
int b[5];
b={ 1 , 2 , 3 , 4 , 5};只能在定义数组的同时进行初始化;
4 .数组内存分析
存储空间的划分,内存的分配是从高到低进行的,但每一个元素内部元素又是从低到高进行的。
5 .数组的其他应用
1.数组作为参数传递时 ,传递的是整个数组的地址,修改函数形参时会影响外面的实参。
#include <stdio.h>
void change (int array[])
{
array [0] = 100;
}
int main()
{
int ages[6]= {10 , 11 , 23 , 34 , 43 , 56};
change(ages);
printf("%d\n",ages[0]) ;
return 0;
}
这个程序输出结果是100.
2.数组作为形参时,会被当作指针使用
#include <stdio.h>
int arryMax (int a[] , int count);
int main ()
{ int ages [] = {10 , 23 , 43 , 45 , 56 ,76 };
int temp = arryMax ( ages , sizeof(ages)/sizeof(int));
printf ("最大值为%d\n",temp);
return 0 ;
}
int arryMax (int a[] , int count )
{
int temp = a[0];
for (int i = 0 ; i < count ; i++)
{
if (a[i+1] > a[i])
{
temp = a[i+1] ;
}
}
return temp ;
}
6,二维数组
初始化 int a[3][4] = { {} , {} , {}, {}}
二维数组初始化例子为int a[3][4]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
意义为三个每个为四的数组,就是int a[3][4]
二.字符串
1.字符串的初始化
int a[] = "123";
int b []= {'1','2','3','0\'};
2."0\"的作用:它是字符串结束的标志。
下面举个例子:
#include <stdio.h>
int main()
{
char name[] = "itcast";
char name2[] ={'y','o','u',};
printf("%s\n",name2);
return 0;
}
输出结果是“youitcast"
如果:
#include <stdio.h>
int main()
{
char name[] = "itcast";
char name2[] ={'y','o','u','\0'};
printf("%s\n",name2);
return 0;
}
输出结果是“you"
<strong>3.strlen函数:</strong>
1>作用是计算字符串的长度
2>计算的字符不包括”\0"
3>strlen函数声明包含在“#include"中
<strong>本节习题</strong>
便携一个函数char_contains(char str[] , char c),如果字符串str中包含c则返回值时1,否则返回值时0.
方法一:
<pre class="objc" name="code">#include <stdio.h>
#include <string.h>
int char_contains(char str[], char c);
int main()
{ int a;
a = char_contains("ingksdfjasjacx",'c');
printf("%d\n",a);
return 0;
}
int char_contains(char str[], char c)
{
int lenth = strlen(str);
for(int i = 0;i
{
if(str[i] ==c)
{
return 1 ;
}
}return 0;
}
输出结果是1
方法二:
#include <stdio.h>
#include <string.h>
int char_contains(char str[], char c);
int main()
{ int a;
a = char_contains("ingksdfjasjacx",'c');
printf("%d\n",a);
return 0;
}
int char_contains(char str[], char c)
{
int lenth = strlen(str) ;
int i = 0;
while(i
{
if(str[i]== c)
{
return 1;
}
i++;
}return 0;
}
4.字符串数组
int name[2][10] = {"字符串1“ , ”字符串2“....}
#include<stdio.h>
int main()
{
char name[2][10] = { "adfdsaf", "fgsagr"};
printf("%s\n",name[0]);
return 0 ;
}
输出结果是”adfdsaf"
#include <stdio.h>
int main()
{
char name[2][10] = { "adfdsaf", "fgsagr"};
printf("%s\n",name[0][3]);
return 0 ;
}
输出结果是d