欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言一維數(shù)組初步學(xué)習(xí)筆記

 更新時間:2016年05月07日 16:12:49   作者:靈犀的博客  
這篇文章主要介紹了C語言一維數(shù)組初步學(xué)習(xí)筆記,包括指針訪問數(shù)組等重要知識點,需要的朋友可以參考下

數(shù)組

可以存儲一組或者多組數(shù)值的變量,里面包含多個元素,數(shù)組的每個成員都是一個數(shù)組元素。

一維數(shù)組

定義:類型 數(shù)組名[常量表達式] = {值1, 值2, 值3…};

int a[3] = {0, 1, 2};
float f[2] = {1.2, 2.3, 3.14};
char str[] = {'h', 'e', 'l', 'l', 'o'};
chat str1 = "iPhone";//這也是定義字符數(shù)組的方法,字符數(shù)組后面會詳細講解,這里先了解一下

當數(shù)組元素個數(shù)為變量時,只能聲明數(shù)組,不能直接賦值:

int length = 4;
int a[length]; //這樣可以
int a[length] = {2, 4, 6, 8};//這樣的話就會報錯

注意事項:

1、系統(tǒng)不會檢測數(shù)組元素的下標是否越界,編程時,必須保證數(shù)組下標不能越界。

2、不能這樣定義數(shù)組 int array[] = {}; //數(shù)組個數(shù)和初始值不能同時為空

3、也不能這樣定義數(shù)組 int array[2] = {1, 2, 3}; //數(shù)組的值的個數(shù)大于數(shù)組的個數(shù)

4、數(shù)組是一個整體,不能直接參加運算,只能對單個元素進行處理,通常用到數(shù)組的地方都會用到循環(huán)

常見數(shù)組操作
如果初始化數(shù)組的時候,數(shù)組的元素個數(shù)確定,那么常量表達式可以不寫:

int a[] = {1, 3, 5, 7, 9};//數(shù)組的長度為5 相當于int a[5] = {1, 3, 5, 7, 9};

int 就是數(shù)組類型,表示這個數(shù)組中的每個元素都是 int 類型。

訪問:通過數(shù)組名+下標去訪問數(shù)組中的元素,而且注意數(shù)組的下標是從 0 開始的,a[0] 就是第一個元素,a[1] 代表第二個元素,a[2] 代表第三個元素。所以數(shù)組的最后一個元素就是 數(shù)組的長度 – 1,一定不要寫a[3],這樣的話就屬于數(shù)組越界。

在數(shù)組的訪問的時候我們通常會通過 for 循環(huán)來操作,這個操作一般稱為遍歷

int ages[28];
//循環(huán)賦值
for(int i = 0; i < 28; i++)
{
  int age = arc4random() % 13 + 18;//每個人的年齡的范圍是:18 ~ 30 之間的隨機值
  ages[i] = age;//給每個元素賦值
}
//訪問,也叫遍歷
for(int i = 0; i < 28; i++)
{
  printf("a[%d] = %d ", i, ages[i]);
}

兩個數(shù)組的每個元素對應(yīng)相加,相加的和存放到第三個數(shù)組中:

int a1[] = {2, 4, 5, 6, 10};
int a2[] = {1, 3, 4, 5, 6};
int a3[5];
for(int i = 0; i < 5; i++)
{
  a3[i] = a1[i] + a2[i];
  printf("a3[%d] = %d ", i, a3[i]);
}

輸出結(jié)果為:

a3[0] = 3 a3[1] = 7 a3[2] = 9 a3[3] = 11 a3[4] = 16

數(shù)組的長度如何計算:

sizeof(數(shù)組名)/sizeof(數(shù)組第一個元素)

int arr[] = {2, 3, 4, 6, 7};
int length = sizeof(arr) / sizeof(arr[0]);
printf("length = %d\n", length);

輸出結(jié)果為:

length = 5

字符數(shù)組:用于存放字符變量的數(shù)組稱為字符數(shù)組,有兩種定義格式:

char str[4] = {'a', 'b', 'c', 'd'};
char str2[] = "iPhone";//另外一種方式

字符串的輸出:

printf("str2 = %s\n", str2);//%s 輸出字符串,遇到 '\0' 結(jié)束

有'\0'結(jié)束標識的字符數(shù)組也稱為字符串,系統(tǒng)提供了許多的一些字符串的函數(shù)

size_t strlen(const char *):計算字符串長度,是字符串的有效長度,不算'\0′

char str[] = "iPhone";
unsigned long length = strlen(str);//strlen 表示有效長度
printf("length = %lu\n", length);

輸出結(jié)果為:

length = 6

strlen() 的實現(xiàn)原理:就是遍歷字符串,當遇到 ‘\0′ 的時候就結(jié)束。

char *strcpy(char *, const char *):字符串拷貝

char str1[] = "Unity";
char str2[] = "Android.....";
printf("%s\n", strcpy(str1, str2));

輸出結(jié)果:

Android

char *strcat(char *, const char *):字符串拼接

char str1[] = "Unity";
char str2[] = " iPhone";
printf("%s\n", strcat(str1, str2));

輸出結(jié)果:

Unity iPhone

int strcmp(const char str1*, const char str2*):字符串比較,并且根據(jù) str1 按照字典順序小于、等于或大于 str2 的結(jié)果分別返回負整數(shù)、0或正整數(shù)。該返回值是 str1 和 str2 由前向后逐字符比較時遇到的第一個不相等字符處的字符的差值

char str1[] = "Unity";
char str2[] = "iPhone";
printf("%d\n", strcmp(str1, str2));

輸出結(jié)果:

復(fù)制代碼 代碼如下:
-20

指針訪問數(shù)組
如果pa指向數(shù)組中的某個元素,那么pa+1將指向下一個元素,pa+i指向下i個元素。所以,若果pa指向a[0],那么*pa其實就是a[0],*(pa+1)就是a[1],*(pa+i)就是a[i]。根據(jù)這個思路,我們可以使用指針來訪問數(shù)組。
#include <stdio.h>
int main(int argc, char *argv[])
{
 int score[10]={76,85,90,67,59,79,82,95,91,65};
 int wait, length, i;
 length = sizeof(score) / sizeof(score[0]);
 for(i = 0; i < length; i++)
 {
 printf("%d \n", *(score + i));
 }
 scanf("%d", &wait);
}

程序輸出:

76
85
90
67
59
79
82
95
91
65

數(shù)組下標與指針關(guān)系很密切。執(zhí)行語句 pa = &a[0] 后,pa 和 a 就具有相同的值了,并且 *pa=a[0]。實際上C語言在計算數(shù)組下標時也是使用指針來完成的。下標與指針其實是等價的。

當把一個數(shù)組名傳遞給一個函數(shù)的時候,實際上傳遞的是該數(shù)組的第一個元素的地址。所以,數(shù)組名參數(shù)必須是一個指針。

計算字符串長度的程序可以寫成以下:

int strlen(char *s)
{
 int n;
  
  for(n = 0; *s != '\0'; s++)
   n++;
  return n;
}

s 是指針,也就是一個變量,對它進行自增是合法的。

相關(guān)文章

  • C語言實現(xiàn)超市信息管理系統(tǒng)

    C語言實現(xiàn)超市信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)超市信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 使用C語言實現(xiàn)本地socke通訊的方法

    使用C語言實現(xiàn)本地socke通訊的方法

    這篇文章主要介紹了?使用C語言實現(xiàn)本地socke通訊,代碼分為服務(wù)器代碼和客戶端代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C語言快速排序與二分查找算法示例

    C語言快速排序與二分查找算法示例

    這篇文章主要介紹了C語言快速排序與二分查找算法,涉及C語言隨機數(shù)生成、快速排序及二分查找等算法相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • C語言深入探索數(shù)據(jù)類型的存儲

    C語言深入探索數(shù)據(jù)類型的存儲

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-07-07
  • C語言中pthread_exit和pehread_join的使用

    C語言中pthread_exit和pehread_join的使用

    pthread_exit用于強制退出一個線程,pthread_join用于阻塞等待線程退出,獲取線程退出狀態(tài),本文主要介紹了C語言中pthread_exit和pehread_join函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • C語言goto語句簡單使用詳解

    C語言goto語句簡單使用詳解

    C語言中提供了可以隨意濫用的 goto語句和標記跳轉(zhuǎn)的標號,本文主要介紹了C語言goto語句簡單使用詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 貪心算法的C語言實現(xiàn)與運用詳解

    貪心算法的C語言實現(xiàn)與運用詳解

    這篇文章主要介紹了貪心算法的C語言實現(xiàn)與運用詳解,運用么,就是文中所附的ACM練習(xí)題,哈哈:D需要的朋友可以參考下
    2015-08-08
  • Qt線程池QThreadPool的使用詳解

    Qt線程池QThreadPool的使用詳解

    本文主要介紹了Qt線程池QThreadPool的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C語言八道筆試題精講帶你掌握指針

    C語言八道筆試題精講帶你掌握指針

    C語言這門課程在計算機的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語言的學(xué)習(xí),對指針的掌握是非常重要的,本文將具體針對指針的基礎(chǔ)做詳盡的介紹
    2022-07-07
  • 華為云開發(fā)工具CodeArts IDE for C/C++開發(fā)使用指南

    華為云開發(fā)工具CodeArts IDE for C/C++開發(fā)使用指南

    CodeArts IDE是一個集成開發(fā)環(huán)境(IDE),它提供了開發(fā)語言和調(diào)試服務(wù),本文主要介紹了華為云開發(fā)工具CodeArts IDE for C/C++ 開發(fā)使用指南,感興趣的可以了解一下
    2023-08-08

最新評論