1. 程式人生 > >黑馬程式設計師—C語言筆記—陣列和字串

黑馬程式設計師—C語言筆記—陣列和字串

一、陣列

1、概念:是用來儲存一組資料的;

a、構造型別:有無數個基本資料型別組成的型別;

b、特點:(1)、只能存放一種型別的資料;(2)、裡面存放的資料稱為元素

2、陣列的定義

a、定義格式: 資料型別 陣列名[元素個數]

b、簡單使用:

(1)、簡單的初始化;int age[3] = {11, 12, 13};

(2)、元素有順序之分,每個元素都有一個唯一的下標(索引index),從0開始

(3)、陣列元素的訪問:a[i]

3、陣列遍歷:按順序檢視陣列的每個元素

#include <stdio.h>

int main()

{

int age[3] = {11, 12, 13};

for(int i = 0; i <3;i++)

{

printf(“age[%d] = %d\n”, i, age[i]);

}

return 0;

}

4、初始化寫法:

a、只能在定義陣列的同時進行初始化,定義初始化時陣列元素個數只能是常量。

int a[3]={1,2,3};

int a[3]={1};

int a[3]={ [0]=1,[2]= 2};

int a[]={1,2,3};

int a[‘A’]={1,2,3};

b、錯誤寫法:

    int a[];  int[] a;  a={1,2,3};  a[3]={1,2,3}; // 只能在定義陣列的同時進行初始化

 int count=3;

 int a[count]={1,2,3};// 這是錯誤的,如果想在定義陣列的同時進行初始化,陣列元素個數必須是常量,或不寫

     int a[count];// 這是可以的,但未定義的陣列元素的值是不確定的,定義陣列過程中並沒有進行初始化,陣列元素個數可以是變數。

     a[0]=1;

5、計算陣列的長度(計算陣列元素的個數)

int a[]={1,2,3};

     int count = sizeof(a)/sizeof(a[0]);

6、陣列的記憶體儲存細節

a、儲存空間的劃分:記憶體的分配是從高地址到低地址進行的,但一個數組內部元素又是從低到高進行的;

b、陣列名就代表陣列的地址;

      列印每個元素的地址

        #include <stdio.h>

int main()

{

int a[3] = {23,53,3};

for(int i =0;i<3;i++)

{

printf(“a[%d]的地址是:%p\n”,i,&a[i]);

}

return 0;

    }

7、陣列和函式

a、陣列作為函式的引數,可以省略元素個數

b、陣列作為函式引數,是進行地址傳遞,傳遞的是整個陣列的地址,修改函式形引數組元素的值,會影響到外面的實引數組。

c、陣列當作函式引數傳遞時,會當做指標變數來使用,指標變數在64bit編譯器環境下佔據8個位元組

void change(int arr[])

{

int size = sizeof(arr);//這個計算的不是陣列的字元長度,而是地址型別的長度

printf(“傳遞引數後的長度:%d”,size);

}

int main()

{

int a[]={1,2,3,4,5,6};

Change(a);

return 0;

}

8、例項練習:

設計一個函式:將一維整型陣列中的元素逆序存放。比如本來是1,3,4,2,逆序存放就變成了:2431

#include <stdio.h>

int main()

{

    int a[]={4,6,2,23,42,4,53};

    int length = sizeof(a)/sizeof(a[0]);

    void arrayChange(int arr[], int length);

    arrayChange(a,length);

     printf("一維整型陣列中的元素逆序存放的結果是\n");

     for (int i=0; i<length; i++) {

        printf(“%d\n”,a[]);

     }

     return 0;

void arrayChange(int arr[],int length)

{

    int temp;

    for(int i=0; i<length/2; i++)

    {

        temp=arr[ i ];

        arr[ i ]=arr[length-1-i];

        arr[length-1-i]=chan;

    }

}

9、二維陣列:是一個特殊的一維陣列,他的陣列元素是一維陣列

a、a[2][3]可以看作由一維陣列a[0]和一維陣列a[1]組成,這兩個一維陣列都包含了3int型別的元素,記憶體儲存細節如下:

b、二維陣列初始化

 int ages2[3][5]= {

        {10, 11, 90, 89, 70},

        {11, 12, 91, 90, 71},

        {12, 13, 92, 91, 72}

};

二、字串

1、概念:是很多字元組合在一起形成的字串例:"jack"

a、初始化:

char name[8]="jack";

char name1[8]={'j', 'a', 'c', 'k', '\0'};

char name2[8]={'j', 'a', 'c', 'k', 0};

char name3[8]={'j', 'a', 'c', 'k'};// 可以看作是隱藏了’\0’;

char name4[]={'j', 'a', 'c', 'k'};// 這個不算是一個字串,只能說是一個字元陣列

b、輸出: %s

printf("字串輸出:%s\n",name);

2、'\0'的作用:字串結束的標誌

%s是從輸出的變數的地址開始一個一個的輸出字元,直到遇到’\0’為止;例:

#include <stdio.h>

int main()

{

char user[]="hello";

   char name[]={'o', 'k' };

   printf("%s\n",name);//name地址開始輸出,結果是okhello;

    return 0;

}

3、常用字串處理函式

strlen();//計算字串長度。

 #include <stdio.h>

#include <string.h>

int main()

{

char user[]="hello你好";

int length = strlen(user);

  printf("%d\n", length);//結果是11

    return 0;

}

a、計算的是字元數,不是字數;

b、計算的字元不包括’\0’;

c、從某個地址開始數字符的個數,直到遇到’\0’為止

4、printf與sizeof

a、printf函式返回的字串常量的字元數,並不是字數

b、sizeof用來計算一個變數或者一個常量所佔的記憶體位元組數。

5、字串陣列

使用場合:儲存多個字串,如儲存3個人的名字:

char name[3][15]={"jack", "rose", "jim"};


相關推薦

黑馬程式設計師C語言筆記陣列字串

一、陣列 1、概念:是用來儲存一組資料的; a、構造型別:有無數個基本資料型別組成的型別; b、特點:(1)、只能存放一種型別的資料;(2)、裡面存放的資料稱為“元素”; 2、陣列的定義 a、定義格式: 資料型別 陣列名[元素個數]; b、簡單使用: (1)、簡單的初始化;int age[3] = {11,

黑馬程式設計師C語言筆記—記憶體剖析

一、進位制 1、定義:是一種計數的方式,數值的表示形式。 2、常用的4種進位制: 二進位制以0b/0B開頭如int num1 = 0b1100; 八進位制以0開頭如int num2 = 014; 十進位制如 int num3 = 12; 十六進位制以0x/0X開頭如int num4=0xc;

黑馬程式設計師——C語言筆記之資料型別與常量

------- android培訓、java培訓、iOS培訓、.Net培訓、期待與您交流! ---------- 1、什麼是資料型別 資料型別是指資料以何種方式儲存在記憶體中,不同的型別儲存方

黑馬程式設計師---C語言陣列字串

       字串的初始化 char a[] = "123"; 和 char a[] = {'1', '2', '3'};的區別。可以比較大小 “123”是由‘1’、'2'、‘3’、‘\0’組成的。 字串的輸出"%s",‘\0’不會被輸出。'\0'的作用:是字串的結束標記。比如:printf("%s\n",

黑馬程式設計師--C語言自學筆記---02基礎語法

1.   關鍵字 2.   識別符號 :由字母、數字、下劃線和美元符號組成,不能以字母開頭。 識別符號命名規範: 1)        名稱要有意義,不要隨便命名成aaaa,bbbb等,要命名成userName,uName等; 2)        採用駝峰命名法:即形如

黑馬程式設計師-C語言-陣列字串

——- ios培訓、ios培訓、期待與您交流! ———- 陣列的定義 陣列是用來存數一組資料的容器,用於把同一型別的一組資料統一管理起來. 陣列的使用方式 1.定義方式: 資料型別 陣列名[長度(數量)] ; int arr[3]; 以上就是定義了一

黑馬程式設計師——C語言基礎——結構體相關練習

今天整理了C語言基礎學習過程中對結構體的一些知識,下面是程式碼片段: #include <stdio.h> #include <string.h> int main(int argc, const char * argv[]) { //定義

黑馬程式設計師——c語言部分基礎

c語言是一種古老但是依然屹立在眾多強勢程式語言中的佼佼者,它提供一種能以簡易的方式編譯、產生少量的機器嗎以及不需要任何執行環境支援便能執行的程式語言。oc是完全相容c語言的一種面嚮物件語言,所以,學好c語言是進階oc的必經之路,話不多說,讓我們看看c語言的一些基礎知識。

黑馬程式設計師——C語言基礎——檔案讀寫實戰

今天覆習的是C語言中另一塊比較重要的部分,檔案的讀寫操作。 在複習過後,還是以一道程式設計題來鞏固一下今天的學習成果: 檔案的讀寫操作程式設計實戰:         1.編寫一個函式,執行後可以錄入一句話(字串又使用者輸入)。         2.在每次輸入儲存後,

黑馬程式設計師——C語言基礎——指標程式設計練習題

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ------- 今天覆習了一下指標的相關知識,並且在網上搜了一道小的程式設計練習題,大概題意如下: 有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數。 大概的

黑馬程式設計師 C#學習筆記⑥ 三層架構基礎實現員工資訊管理

---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ---------------------- 三層架構定義 1、表現層(UIL):通俗講就是展現給使用者的介面,即使用者在使用一個系統的時候他的所見所得。 2、業

黑馬程式設計師 C#學習筆記⑤ 省市縣三級聯動查詢

---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------詳細請檢視:www.itheima.com 實現一個可以動態的進行省市縣查詢的程式 一 基本原理: 通過ADO.NET技

黑馬程式設計師-C語言回顧-迴圈

一、迴圈結構介紹 1、概述      迴圈結構是程式中一種很重要的結構。其特點是:在給定條件成立時,反覆執行某程式段,知道條件不成立為止。給定的條件稱為村換條件,反覆執行的程式段稱為迴圈體。     迴圈結構簡單來說就是:迴圈是一次又一次的執行相同的程式碼塊。 C語言提

黑馬程式設計師---c語言 指標

——Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ——- 指標變數的型別說明 對指標變數的型別說明包括三個內容: (1)指標型別說明,即定義變數為一個指標變數; (2)指標變數名; (3

黑馬程式設計師————C語言_基礎知識整理(一)

任何一個C語言程式都是由一個或多個程式段(小程式)構成的,每個程式都有自己的功能,我們一般稱這些程式段為“函式” C程式的結構:由函式構成 一、unix指令 /* ls -l 列出當前目錄下的所需內容 pwd 顯示當前目錄的名稱

黑馬程式設計師-C語言基礎學習(一)

C語言學習筆記一 ---既然決定14年要好好的努力一次,那麼就不要再輕言放棄,不再在隨波逐流。只有努力過、拼搏過,才會知道自己行還是不行!為自己加油!--- ---總結的知識點可能有不正確的地方,如果有發現請留言給我,我一定及時更正,不讓錯誤的知識去誤導大家,有好的意見

黑馬程式設計師——————c語言之預處理命令

一、什麼是預處理指令 1、C語言在對源程式進行編譯之前,會先對一些特殊的預處理指令作解釋,產生一個新的源程式(這個過程稱為編譯預處理),之後再進行通常的編譯 2、為了區分預處理指令和一般的C語句,所有預處理指令都以符號"#"開頭,並且結尾不用分號3、預處理指令可以

黑馬程式設計師C語言資料型別及不同型別常量表示方法

一、C語言中的資料型別 1.資料型別的分類 C語言中常用的資料類型從大的方面可以分為5大類,分別是:基本型別、構造型別、指標型別、空型別void和定義型別typedef。而具體到各大分類中又可以劃分為

黑馬程式設計師————c語言基本知識——資料,識別符號,常量,變數,printf ,scanf等基本知識

分類:ios學習筆記 一.資料型別:   1.基本型別(整型、字元型、浮點型、列舉型別),   2.構造型別(陣列型別,結構體型別,共用體型別),   3.指標型別,   4.空型別 二.標示符:  只能由字母、數字或下劃線組成。且第一個不能為數字,不能為C 語言所

黑馬程式設計師 ---C語言入門疑難點---3

------- <a href="http://www.itheima.com" target="blank">IOS培訓</a>、<a href="http://www.itheima.com" target="blank">IOS培訓