最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

數(shù)組

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

一維數(shù)組

定義:類(lèi)型 數(shù)組名[常量表達(dá)式] = {值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ù)組后面會(huì)詳細(xì)講解,這里先了解一下

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

int length = 4;
int a[length]; //這樣可以
int a[length] = {2, 4, 6, 8};//這樣的話(huà)就會(huì)報(bào)錯(cuò)

注意事項(xiàng):

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

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

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

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

常見(jiàn)數(shù)組操作
如果初始化數(shù)組的時(shí)候,數(shù)組的元素個(gè)數(shù)確定,那么常量表達(dá)式可以不寫(xiě):

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

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

訪(fǎng)問(wèn):通過(guò)數(shù)組名+下標(biāo)去訪(fǎng)問(wèn)數(shù)組中的元素,而且注意數(shù)組的下標(biāo)是從 0 開(kāi)始的,a[0] 就是第一個(gè)元素,a[1] 代表第二個(gè)元素,a[2] 代表第三個(gè)元素。所以數(shù)組的最后一個(gè)元素就是 數(shù)組的長(zhǎng)度 – 1,一定不要寫(xiě)a[3],這樣的話(huà)就屬于數(shù)組越界。

在數(shù)組的訪(fǎng)問(wèn)的時(shí)候我們通常會(huì)通過(guò) for 循環(huán)來(lái)操作,這個(gè)操作一般稱(chēng)為遍歷

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

兩個(gè)數(shù)組的每個(gè)元素對(duì)應(yīng)相加,相加的和存放到第三個(gè)數(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ù)組的長(zhǎng)度如何計(jì)算:

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

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

輸出結(jié)果為:

length = 5

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

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

字符串的輸出:

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

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

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

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

輸出結(jié)果為:

length = 6

strlen() 的實(shí)現(xiàn)原理:就是遍歷字符串,當(dāng)遇到 ‘\0′ 的時(shí)候就結(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é)果分別返回負(fù)整數(shù)、0或正整數(shù)。該返回值是 str1 和 str2 由前向后逐字符比較時(shí)遇到的第一個(gè)不相等字符處的字符的差值

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

輸出結(jié)果:

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

指針訪(fǎng)問(wèn)數(shù)組
如果pa指向數(shù)組中的某個(gè)元素,那么pa+1將指向下一個(gè)元素,pa+i指向下i個(gè)元素。所以,若果pa指向a[0],那么*pa其實(shí)就是a[0],*(pa+1)就是a[1],*(pa+i)就是a[i]。根據(jù)這個(gè)思路,我們可以使用指針來(lái)訪(fǎng)問(wèn)數(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ù)組下標(biāo)與指針關(guān)系很密切。執(zhí)行語(yǔ)句 pa = &a[0] 后,pa 和 a 就具有相同的值了,并且 *pa=a[0]。實(shí)際上C語(yǔ)言在計(jì)算數(shù)組下標(biāo)時(shí)也是使用指針來(lái)完成的。下標(biāo)與指針其實(shí)是等價(jià)的。

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

計(jì)算字符串長(zhǎng)度的程序可以寫(xiě)成以下:

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

s 是指針,也就是一個(gè)變量,對(duì)它進(jìn)行自增是合法的。

相關(guān)文章

  • 利用Matlab實(shí)現(xiàn)圖像亮度分布統(tǒng)計(jì)圖

    利用Matlab實(shí)現(xiàn)圖像亮度分布統(tǒng)計(jì)圖

    這篇文章主要介紹了如何利用Matlab實(shí)現(xiàn)圖像亮度分布統(tǒng)計(jì)圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定的幫助,感興趣的可以了解一下
    2022-05-05
  • Matlab實(shí)現(xiàn)四種HSV色輪圖繪制的示例代碼

    Matlab實(shí)現(xiàn)四種HSV色輪圖繪制的示例代碼

    色輪圖就是色彩相位圖,它完整表現(xiàn)了色相環(huán)360度的全部顏色。本文將利用Matlab語(yǔ)言繪制四種不同的HSV色輪圖,感興趣的可以動(dòng)手嘗試一下
    2022-07-07
  • Qt利用QScroller實(shí)現(xiàn)home界面滑動(dòng)效果

    Qt利用QScroller實(shí)現(xiàn)home界面滑動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Qt如何利用QScroller實(shí)現(xiàn)home界面滑動(dòng)效果,文中的實(shí)現(xiàn)過(guò)程講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • C語(yǔ)言泛型選擇編程示例詳解

    C語(yǔ)言泛型選擇編程示例詳解

    這篇文章主要介紹了C語(yǔ)言泛型選擇編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++實(shí)現(xiàn)單鏈表的構(gòu)造

    C++實(shí)現(xiàn)單鏈表的構(gòu)造

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)單鏈表的構(gòu)造,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語(yǔ)言實(shí)例問(wèn)題探究字符串函數(shù)的應(yīng)用

    C語(yǔ)言實(shí)例問(wèn)題探究字符串函數(shù)的應(yīng)用

    字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語(yǔ)言中用來(lái)進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長(zhǎng)度,字符查找等的函數(shù)
    2022-04-04
  • C/C++迭代器的失效問(wèn)題詳解

    C/C++迭代器的失效問(wèn)題詳解

    這篇文章主要為大家詳細(xì)介紹了C/C++迭代器的失效問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問(wèn)題

    解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問(wèn)題

    這篇文章主要介紹了解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C語(yǔ)言中strcpy和strcat的使用和模擬實(shí)現(xiàn)

    C語(yǔ)言中strcpy和strcat的使用和模擬實(shí)現(xiàn)

    strcpy()?函數(shù)是?C語(yǔ)言中一個(gè)非常重要的字符串處理函數(shù),其功能是將一個(gè)字符串復(fù)制到另一個(gè)字符串中,strcat函數(shù)可以將一個(gè)字符串拼接到另一個(gè)字符串的末尾,本文給大家介紹了C語(yǔ)言中strcpy和strcat的使用和模擬實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • operator new在C++中的各種寫(xiě)法總結(jié)

    operator new在C++中的各種寫(xiě)法總結(jié)

    這篇文章并不是一個(gè)綜合的手冊(cè),而是一個(gè)C++中各種內(nèi)存分配方法的概述。它面向已經(jīng)很熟悉C++語(yǔ)言的讀者
    2013-09-09

最新評(píng)論

彩票| 罗平县| 平度市| 武定县| 金乡县| 高尔夫| 读书| 徐水县| 丹巴县| 浑源县| 出国| 辰溪县| 长葛市| 铜川市| 体育| 达州市| 南陵县| 保靖县| 惠来县| 金昌市| 杭锦后旗| 腾冲县| 论坛| 太仓市| 河东区| 从江县| 宁化县| 嘉义县| 临海市| 吴旗县| 民和| 皮山县| 郓城县| 措美县| 卢龙县| 平乡县| 星子县| 丘北县| 临洮县| 兰西县| 东山县|