一維數組的定義:
類型符 數組名[常量表達式];
例:int a[10];
定義數組,會從內存里划分出一片存儲空間。
a[0] |
a[1] |
a[2] |
a[3] |
a[4] |
a[5] |
a[6] |
a[7] |
a[8] |
a[9] |
每一個空間你都可以存儲數據,也可以不存儲(輸出是隨機數)。
引用:
數組名[下標];
通過上邊的定義可以看出來,下標和它對應的位置是差一的。
一維數組的初始化:
int a[10]={1,2,3,4,5,6,7,8,9,10};
從左至右依次對應,若初始值量不夠,則后面的就初始化為零。
特例;int a[10]={0}; (把數組a全部初始化為0)
例:用數組處理Fibonacci數列問題!
#include
int main()
{
int a[30]={1,1},i;
for(i=2;i<=30;i++)
{
a[i]=a[i-1]+a[i-2];
printf("%d\n",a[i]);
}
return 0;
}
通過數組我們很容易就就出了前三十的值。數組的魅力很大,需要我i們慢慢體會。
二維數組:
和一維數組用法差不多,所以就描述下他的一般形式
int a[2][3];
定義數組,會從內存里划分出一片存儲空間。
a[0][0] |
a[0][1] |
a[0][2] |
a[1][0] |
a[1][1] |
a[1][2] |
通過表可以看出第一個下標代表縱列,第二個下標代表橫列。
引用和初始化參考一維數組進行理解。
用字符初始化數組:
單個字符。
Char a={‘a’};//單引號
字符串。
Char a[10]={“Hello”};//雙引號,定義的下標要>=字符串的長度.
對於數組的輸入輸出:
#include
int main()
{
int a[3],i;
char str[6],s;
sacnf("%d %d %d",&a[0],&a[1],&a[2]);//輸入整形數組
scanf("%c",&s[5]);//輸入字符
scanf("%s",str);//輸入字符串
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
printf("%c\n",s);
printf("%s\n",str);
return 0;
}
多留意下輸入語句,這是用scanf()函數實現的輸入。
定義輸入字符串時,沒有&,因為數組本身就是指針。結束條件是空格或回車。
scanf()不能實現對有空格的字符串的輸入,但是gets()可以,輸出可以用puts()。
一般形式:
gets(字符數組名);
puts(字符數組名);
字符串處理的函數:
① Puts(字符數組)//輸出字符串
② Gets(字符數組)//輸入字符串
③ Strcat(字符數組1,字符數組2)//合並字符串
④ Strcpy(字符數組1,字符數組2)//字符串復制
⑤ Strcmp(字符串1,字符串2)//比較字符串
⑥ Strlen(字符串)//測字符串的長度
⑦ Strlwr(字符串)//將字母轉化為小寫
⑧ Strupr(字符串)//將字母轉化為大寫
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。