亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c++6.dat

?? C++指令字典 一個方便的軟件 用于C++指令的查詢
?? DAT
字號:
第六章 數組與字符串

第一節(jié) 一維數組

在C++中,數組是一種集合數據類型,它由許多元素組成,每一個元素都有相同的數據類型,在內存中占用相同大小的存儲單元,且在內存中連續(xù)存放.每一個數組有一個名字,數組中的每一個元素有一個序號(或稱下標)表示元素在數組中的位置,我們正是通過下標來識別數組中的每一個元素.
  數組有一維的,也有多維的,數組也有大小,數組的維數和大小是在定義數組時就確定的,程序運行的時候不能改變.
  數組適合于表示由許多相似項組成的組合數據,例如,人名表、世界城市和它們的溫度表、銀行每月的帳目處理等.
  本章中,我們將介紹一維數組、二維數組和字符數組的定義、引用和它們的初始化.
  數組主要有以下特點:
  (1) 每個數組元素的數據類型相同,且可以是任何合法的數據類型;
  (2) 數組可以是一維的、二維的,甚至更高維的,例如,下面的語句就定義了一個三維數組ARRAY:
  INT ARRAY[3][3][3];
  (3) 數組同其它變量一樣,在使用前必須定義;
  (4) 數組各個元素按順序排列,其位置由下標確定;
  (5) 數組元素可以同其它變量一樣使用.
  注意:數組的維數和大小是在定義數組時就確定的,程序運行的時候不能改變.

1.1 一維數組的定義
  數組的定義與變量的定義類似,一維數組的一般定義形式為:
  類型說明符 數組名[常量表達式];
  "類型說明符"指定數組元素的類型,"數組名"的命名規(guī)則與變量一樣,方括號中的"常量表達式"的值表示數組元素的個數,它必須是一個整數.例如,北京最近一百年來每年的平均溫度值可保存在一個數組中,該數組可定義為:
  float annual_temp[100];
  這個定義會使得編譯器分配100個連續(xù)的float變量的內存空間.數組元素的個數在編譯時就必須固定,且最好定義為一個常量.這樣,當數組元素的個數需要改變時,只要改變那個常量即可:
  const int NE = 100;
  float annual_temp[NE]; 
  數組元素的下標從零開始計數,在annual_temp數組中,第一個元素是annual_temp[0],第二個元素是annual_temp[1],余類推,最后一個元素是annual_temp[NE-1]. 

1.2 一維數組的使用
  C++中,數組元素的下標總是從0開始,如果一個數組有n個元素,則第一個元素的下標是0,最后一個元素的下標是n-1.
  訪問數組元素的方法是通過數組名及數組名后的方括號中的下標.例如,假定我們要設置上面定義的數組annual_temp的第15個元素值為11.5,則代碼為:
  annual_temp[14] = 11.5;
  如果,企圖訪問一個不存在的數組元素,會導致一個嚴重的錯誤.例如:
  annual_temp[100]= 12.3; //錯誤,該數組的最大下標為99! 
  能使用標識符的地方,就能引用數組元素.下面是引用數組元素的一些例子,并假定在引用前已有如下的一些定義:
  const int NE = 100,
  N = 50;
  int i, j, count[N];
  float annual_temp[NE];
  float sum, av1, av2; 
  能夠用cin函數將一個值直接讀到數個數組元素中:
  cin >> count[i]; 
  數組元素能夠進行算術運算:
  count[i] = count[i] + 5; 
  count[i] += 5; 
  數組元素可以用在邏輯表達式中:
  if (annual_temp[j] < 10.0)
  cout << "It was cold this year "
  << endl;
  處理數組元素時,通常使用循環(huán)語句.例如annual_temp的數組元素的值可用下面的語句獲得:
  for (i = 0; i < NE; i++)
  cin >> annual_temp[i];
  下面的代碼可以算出數組前10個元素均值:
  sum = 0.0;
  for (i = 0; i <10; i++)
  sum += annual_temp[i];
  av1 = sum / 10;
  假定k是一個整型變量或常量,但k<=NE.假定要計算數組中最后k個元素的平均值,代碼如下:
  sum = 0.0;
  for (i = NE - k; i < NE; i++)
  sum += annual_temp[i];
  av2 = sum / k;

第二節(jié) 多維數組

2.1 二維數組的定義
  二維數組相當于一個矩陣,它的定義方法與一維數組的定義類似.二維數組定義的一般形式為:
  類型說明符 數組名[常量表達式1][常量表達式2]; 
  "類型說明符"指定數組元素的類型,"數組名"是C++允許的標識符,"常量表達式1"指定數組元素的行數,"常量表達式2" 指定數組元素的列數.例如,我們要表示北京、天津、上海三個城市一年四季的平均氣溫,參見表6-5. 
可以定義一個二維數組來保存氣溫值:
  float seasonTemp[3][4];
這個數組在內存中占用12個連續(xù)的float元素的存儲單元,如圖6-2. 
  我們可以看到:C++中,二維數組在內存中的存放仍然是一維的,且各個元素按行順序存放. 

2.2 二維數組的初始化
  二維數組的初始化是分行進行的.例如:
    float seasonTemp[3][4] = {
   {11.3, 28.2, 16.5, -7.1},
   {12.4, 27.1, 17.6, -5.7},
   {23.2, 33.5, 25.8, -1.3}
  }; 
  我們已經知道,二維數組在內存中是一維的,且由各行元素順序存放得到.所以,seasonTemp也可以采用下面的語句初始化:
  int seasonTemp[3][4] = {
   11.3, 28.2, 16.5, -7.1, 12.4, 27.1, 17.6, -5.7, 23.2, 33.5, 25.8, -1.3
  }; 
  但是,按行初始化更直觀、更通用,它能夠初始化某一行中的部分元素.例如:
  int seasonTemp[3][4] = {{26}, {24}, {28}}; 
  上面的語句僅初始化數組每一行的第一個元素,而其它元素未給初值.
  我們定義并初始化一個二維數組時,可以省略"常量表達式1",例如:
  int seasonTemp[][4] = {
   {26, 34, 22, 17},
   {24, 32, 19, 13},
   {28, 38, 25, 20}
  }; 
  如果省略"常量表達式1"最好采用按行初始化的方式,否則,容易出錯.編譯器根據初值的行數來確定數組的行數.
  注意:"常量表達式2"一定不能省略,否則程序編譯時會出錯.因為二維數組元素在存取時,需要在一維和二維之間轉換,如果省略"常量表達式2",則編譯器無法計算出它們之間的對應關系. 
    
2.3 二維數組的使用
  類似于一維數組的訪問,訪問二維數組元素可通過兩個[]運算符,第一個[]運算符指定元素的行下標,第二個[]運算符指定元素的列下標.二維數組的行下標和列下標均是從0開始的.如果有一個有m行、n列的二維數組,它的第一行第一列元素的行和列下標分別是0和0,最后一行最后一列元素的行和列下標分別是m-1和n-1.


第三節(jié) 字符數組

當數組中的元素都是由一個個字符組成時,便稱之為字符數組.字符數組并無什么特別之處,它的的重要性在于: C++中,用一個一維的字符數組表示字符串.數組的每一個元素保存字符串的一個字符,并附加一個空字符,表示為`\0',添加在字符串的末尾,以識別字符的結束.所以,如果一個字符串有n個字符,則至少需要有n+1個元素的字符數組來保存它.例如,一個字符`a'僅需要一個字符變量就可以保存,而字符串"a"需要有兩個元素的字符數組來保存,一個元素存字符`a',另一個元素存空字符`\0'.

3.1 字符數組的輸出 
  字符串可以用printf或cout函數輸出,例如: 
  cout << "The string s1 is " << s1 << endl;
  printf("The string s1 is %s\n", s1) ; 
  上面兩個語句的輸出結果相同,均為:
  The string s1 is example

3.2 字符數組的輸入
  字符串(字符數組)通常用scanf和cin函數輸入,下面分別介紹.
    一、用scanf函數輸入字符串
  scanf可以一次輸入一個或多個字符串,如果一次輸入多個字符串,字符串之間用逗號隔開,    用"ENTER"結束輸入. 
    char s1[10], s2[10];
  執(zhí)行語句:
  scanf("%s", s1);
    二、用cin輸入字符串
  用cin輸入字符串的作用與scanf類似,但更方便.例如,假定s1定義還與前面一樣,執(zhí)行下面的語句:
  cin << s1;
  輸入輸入字符串"Learn C++",s1的值與用scanf的結果是一樣的.如果一個字符串中有空格,我們就需要在空格的地方將字符串分成二個或多個字符串輸入.例如,某人名字為"Ian Aitchison",我們可以用下面的語句輸入: 
  char firstname [12], surname[12];
  cout << "Enter name ";
  cin >> firstname;
  cin >> surname;
  cout << "The name entered was "
  << firstname << " "
  << surname;
  執(zhí)行上面的語句,輸入"Ian Aitchison",輸出結果如下:
  The name entered was Ian Aitchison
  上面的程序段我們也可以修改為,效果是一樣的:
  char firstname [12], surname[12];
  cout << "Enter name ";
  cin >> firstname >> surname;
  cout << "The name entered was "
  << firstname << " "
  << surname;
字符數組應用舉例:
 1. 求字符串的長度 
 2. 從鍵盤上讀一個輸入行并輸出 
 3. 把兩個字符串連接起來
 4. 把一個數字字符串轉換為相應的整數


第四節(jié) 數組做函數參數

  同其它變量一樣,數組也可以作函數的參數.數組元素只能作函數實參,且同其它變量的用法沒有區(qū)別.
數組元素要通過數組名和相應的下標一個個地引用,而數組名可以作函數的實參和形參.當數組作為函數參數時,調用函數中的實參數組只是傳送該數組在內存中的首地址,即調用函數通知被調函數在內存中的什么地方找到該數組.在前面我們已經知道了函數參數的值傳遞方式,調用函數向被調函數傳遞數據地址的方式,稱之為函數參數的引用傳遞. 
  對于函數參數的引用傳遞,除傳送數組名外,調用函數還必須通知被調函數:數組有多少個元素.所以,有數組參數的函數原型的一般形式為:
  類型說明符 函數名(數組參數, 數組元素個數)
數組參數并不指定數組元素的個數,即[]中是空的,沒有數字.例如:
#include <iostream.h>
int add(int x, int n)
{
 return (x + n);
}
void main()
{
 int a[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
 int i;
 for( i = 0; i<10; i++)
  a[i]=add(a[i], i); //數組元素作函數參數
 for(i = 0; i<10; i++)
  cout << a[i] << endl; 
} 
函數參數的引用傳遞不同于值傳遞.值傳遞時是把實參的值復制到形參,實參和形參占用不同的存儲單元,形參值的改變不會影響到實參.而數組作為函數參數傳遞時,是引用傳遞方式,即把實參數組在內存中的首地址傳給了形參,被調函數可以通過該地址,找到實參數組中的各個元素.這就意味著:在被調函數中,如果改變了形參數組某元素的值,在被調函數中,實參數組對應元素的值也會發(fā)生相應的改變. 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线这里只有精品| 韩国女主播一区| 亚洲男人的天堂一区二区 | 国产精品久久久久久妇女6080| 日韩欧美国产一区二区三区 | 国产资源精品在线观看| 久久精品久久99精品久久| 免费在线观看日韩欧美| 韩国在线一区二区| 国产大陆亚洲精品国产| heyzo一本久久综合| 91在线你懂得| 精品视频1区2区3区| 777久久久精品| 精品欧美黑人一区二区三区| 欧美精品一区二区三区视频| 国产农村妇女毛片精品久久麻豆| 中文乱码免费一区二区| 亚洲国产日韩综合久久精品| 蜜臀av一区二区三区| 国产成人在线免费观看| 日本韩国欧美一区| 欧美成人精品二区三区99精品| 久久久国产一区二区三区四区小说| 国产精品视频一二三| 一区二区三区精品视频在线| 日韩激情视频网站| 岛国精品在线播放| 欧美日韩精品一区二区天天拍小说| 欧美一区二区三区色| 中文字幕精品一区二区精品绿巨人| 亚洲综合一区二区精品导航| 精品一区二区三区免费观看| 91在线精品一区二区| 日韩一级黄色片| 中文字幕av资源一区| 无吗不卡中文字幕| av不卡一区二区三区| 日韩欧美美女一区二区三区| 中文字幕日韩一区| 久久99精品国产麻豆不卡| 99久久伊人久久99| 日韩午夜激情av| 亚洲精选视频免费看| 韩国女主播一区| 91精品综合久久久久久| 中文字幕亚洲电影| 国产精品一区二区你懂的| 51午夜精品国产| 一区二区免费在线| 国产suv精品一区二区883| 欧美欧美午夜aⅴ在线观看| 国产精品初高中害羞小美女文| 老司机免费视频一区二区三区| 欧美日韩一区二区三区在线看| 国产精品久久久久久久久免费丝袜 | 久久久久久一二三区| 亚洲成人av一区二区| 色综合天天综合网天天看片| 国产亚洲短视频| 激情综合五月婷婷| 日韩午夜电影av| 麻豆成人综合网| 日韩免费高清av| 日本欧美在线观看| 91精品国产综合久久久久久久久久| 一区二区三区中文免费| eeuss鲁片一区二区三区在线看| 久久午夜国产精品| 国产精品一区二区三区网站| 久久青草国产手机看片福利盒子 | 天堂成人国产精品一区| 欧美日韩在线一区二区| 亚洲在线观看免费| 在线精品视频一区二区三四 | 久久精品国产精品亚洲精品| 欧美二区三区91| 欧美96一区二区免费视频| 欧美一级片在线观看| 人妖欧美一区二区| 精品乱码亚洲一区二区不卡| 极品瑜伽女神91| 国产片一区二区| 99r国产精品| 亚洲高清不卡在线| 日韩视频一区二区三区在线播放| 日韩在线播放一区二区| 精品国产一二三区| 成人激情小说网站| 亚洲欧美激情小说另类| 欧美日韩国产123区| 精品一区二区国语对白| 国产精品拍天天在线| 欧美伊人久久久久久午夜久久久久| 日韩成人一级片| 久久精品欧美日韩精品| 日本高清不卡视频| 激情偷乱视频一区二区三区| 中文字幕五月欧美| 日韩欧美高清dvd碟片| 粉嫩av一区二区三区| 亚洲午夜精品17c| 国产午夜精品理论片a级大结局| a级精品国产片在线观看| 日韩精品电影在线观看| 欧美国产日韩精品免费观看| 欧美日韩精品一区视频| 国产成人免费视频精品含羞草妖精| 亚洲天堂免费看| 日韩欧美电影在线| 欧美系列一区二区| 国产成人免费视频一区| 亚洲综合久久av| 欧美精品一区视频| 精品视频1区2区3区| 波多野结衣中文一区| 麻豆国产欧美日韩综合精品二区 | 五月激情综合婷婷| 国产精品电影院| 久久这里都是精品| 欧美高清视频不卡网| 99国产精品久久久| 国产99久久久精品| 美女在线视频一区| 亚洲最大成人综合| 国产精品久久三区| 3d动漫精品啪啪1区2区免费| 懂色av中文字幕一区二区三区| 亚洲电影视频在线| 国产精品伦一区| 2023国产精华国产精品| 91精品国产综合久久久久久| 91小视频在线免费看| 丁香婷婷综合激情五月色| 美女免费视频一区| 丝袜国产日韩另类美女| 亚洲尤物在线视频观看| 亚洲欧美国产高清| 日韩美女视频一区| 国产精品视频第一区| 中文字幕av资源一区| 国产女人18水真多18精品一级做| 日韩精品影音先锋| 欧美一区二区视频在线观看2022 | 欧美性感一区二区三区| 色婷婷精品久久二区二区蜜臂av| 国产a视频精品免费观看| 激情久久五月天| 精品一区二区三区日韩| 国产在线麻豆精品观看| 国产精品一区二区久久精品爱涩 | 亚洲一区在线观看视频| 亚洲综合成人网| 亚洲国产精品天堂| 婷婷开心激情综合| 日韩在线一区二区| 久久av中文字幕片| 国产麻豆日韩欧美久久| 国产不卡高清在线观看视频| 成人一区二区三区| 91色在线porny| 欧美日韩亚洲综合在线| 91精品国产乱码久久蜜臀| 欧美一区二区不卡视频| 日韩美女视频在线| 国产亚洲欧洲一区高清在线观看| 久久久久久久久蜜桃| 国产精品免费人成网站| 依依成人综合视频| 男人的天堂亚洲一区| 国产 欧美在线| 在线观看网站黄不卡| 欧美一卡二卡在线| 国产午夜精品久久| 亚洲免费资源在线播放| 日本视频在线一区| 国产99久久久精品| 欧美三级韩国三级日本一级| 精品国产一区二区精华| 国产精品国产自产拍高清av王其 | 日韩国产高清影视| 精品影视av免费| 99国产精品久久久| 日韩欧美国产一二三区| 国产精品嫩草影院av蜜臀| 性久久久久久久久久久久| 国内成+人亚洲+欧美+综合在线 | 91麻豆精品国产综合久久久久久 | 欧美浪妇xxxx高跟鞋交| 精品国产91乱码一区二区三区| 中文字幕在线一区| 精品制服美女丁香| 欧美亚洲综合在线| 国产精品国产三级国产普通话三级| 亚洲在线免费播放| 不卡的电视剧免费网站有什么| 欧美福利一区二区| 最新久久zyz资源站| 精品亚洲porn| 欧美日韩国产一区|