c語言數組常用知識點總結


做這個總結的宗旨是夠用就好,所以目前只總結了一維數組的部分,這些運用幾乎涵蓋了我目前碰到的全部問題,以后遇到其他問題再做添加

一.一維數組
1. 初始化方法
第一種:完全初始化。依次賦值
如:a[5] = {2,3,4, 5, 6};
a[] = {1,2, 3, 4, 5, 6};

第二種:不完全初始化。初始化式中的值從a[0]開始,依次向后賦值,不足的默認用0填充賦值
如:a[5] = {4, 5, 6};

第三種:間隔初始化。未賦值的默認用0填充賦值
如:a[5]={100, [4] = 99};
a[5]={[1]=100, [4] = 99};
a[3000]={[5] = 200};

注:數組初始化之后不能再整體重新賦值,但可以單獨重新賦值

2. 指針與數組的結合
數組名:數組名表示數組的首元素首地址,因此作右值可以直接賦值給指針。

如果有 int a[5];
則 a和&a[0]都表示數組首元素a[0]的首地址。(指向首元素)
而&a則表示數組的首地址。(指向整個數組)

3. 用printf輸出字符串(字符數組)
如:

#include <stdio.h>
int main (int argc, char *argv[])
{
char a[] = "m\\0yp";
char* p = "myp";
char* p1 = "my\0p";
/*
雙引號做了3件事:
1)申請了空間(在常量區),存放了字符串
2) 在字符串尾加上了'\0'
3)返回首元素的首地址

你這里就是 返回的地址 賦值給了 p
*/
printf("%s\n", a);//%s對應的是一個char*類型的變量,輸出的是從這個地址開始直到0/結束的字符
//結果輸出的是m\0yp
printf("%s\n", p);//結果輸出的是myp
printf("%s\n", p1);//結果輸出的是my
return 0;
}

4、數組中幾個關鍵符號(a a[0] &a &a[0])的理解(前提是 int a[10])
結合左值右值去理解
(1)a不能做左值(因為數組在初始化之后就不能進行整體操作了),做右值表示首元素的首地址等同於&a[0]
(2)a[0]做左值時表示數組第0個元素對應的內存空間;做右值時表示數組第0個元素的值
(3)&a不能做左值;&a做右值時表示整個數組的首地址。
(4)&a[0]不能做左值,做右值時表示首元素的首地址等同於a。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM