日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++学习笔记6[数组]

發(fā)布時間:2024/9/30 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习笔记6[数组] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C++學習目錄鏈接:
C++學習筆記目錄鏈接(持續(xù)更新中)


文章目錄

  • 一、一維數(shù)組
    • 1.一維數(shù)組的聲明
    • 2.一維數(shù)組的引用
    • 3.一維數(shù)組的初始化
  • 二、二維數(shù)組
    • 1.二維數(shù)組的聲明
    • 2.二維數(shù)組的引用
    • 3.二維數(shù)組的初始化
  • 三、字符數(shù)組
    • 1.字符數(shù)組的聲明
    • 2.字符數(shù)組的賦值方式
    • 3.字符串處理函數(shù)
  • 總結


一、一維數(shù)組

1.一維數(shù)組的聲明

????在程序設計中,將同一數(shù)據(jù)類型的數(shù)據(jù)按一定形 式有序地組織起來,這些有序數(shù)據(jù)的集合就稱為數(shù)組。一個數(shù)組有一個統(tǒng)一的數(shù)組名, 可以通過數(shù)組名和下標來唯一確定 數(shù)組中的元素。一維數(shù)組的聲明形式如下:

數(shù)據(jù)類型 數(shù)組名 [常量表達式]

int a[10];//聲明一個整形數(shù)組,包含10個元素 char name[128];//聲明一個字符數(shù)組,包含128個字符 float price[20];//聲明一個浮點型數(shù)組,包含20個元素

????使用數(shù)組的說明:

  • (1)數(shù)組名的命名規(guī)則和變量名相同。
  • (2)數(shù)組名后面的括號是方括號,方括號內(nèi)是常量表達式。
  • (3)常量表達式表示元素的個數(shù),即數(shù)組的長度。
  • (4)定義數(shù)組的常量表達式不能是變量,因為數(shù)組的大小不能動態(tài)定義。例如:int a[i];//不合法

2.一維數(shù)組的引用

????一維數(shù)組引用的-般形式如下:
????數(shù)組名[下標]

????例如:
int a[10];//聲明一個整形數(shù)組,包含10個元素
a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],是對數(shù)組a中10個元素的引用。

????一維 數(shù)組引用的說明:
????(1)數(shù)組元素的下標起始值為0而不是1。
????(2) a[10]是不存在的數(shù)組元素,引用a[10]非法。

3.一維數(shù)組的初始化

????數(shù)組元素初始化的方式有兩種,- 種是對單個元素逐一賦值,另一種是使用聚合方式賦值。
(1)單一數(shù)組元素賦值
a[0]=0就是對單一數(shù)組元素賦值,也可以通過變量控制下標的方式進行賦值。例如:

#include <iostream>using namespace std;void main() { char a[3];//聲明一個字符數(shù)組,包含3個元素 a[0]='a'; a[1]='b'; a[2]='c'; int i=0; cout<<a[i]<<endl;//打印a[0] }

(2)聚合方式賦值
數(shù)組不僅可以逐一對數(shù)組元素賦值,還可以通過大括號進行多個元素的賦值。例如:

char a[3]={'a','b','v'};//聲明一個字符數(shù)組,包含3個元素

char a[]={'a','b','v'};//聲明一個字符數(shù)組,編譯器能識別元素個數(shù)

char a[3]={'a','b'};//聲明一個字符數(shù)組,包含3個元素,最后一個元素賦值為空,如果是整型數(shù)組,則賦值為0 #include <iostream> using namespace std; void main() { char a[3]={'a','b','v'};//聲明一個字符數(shù)組,包含3個元素int i=0; cout<<a[i]<<endl;//打印a[0] }

二、二維數(shù)組

1.二維數(shù)組的聲明

????二維數(shù)組聲明的一般形式為:
數(shù)據(jù)類型數(shù)組名[常量表達式1][常量表達式2]
例如:
int a[3]4];//聲明具有3行4列元素的整型數(shù)組
float myArray[4][5]; /I聲明具有 4行5列元素的浮點型數(shù)組

????一維 數(shù)組描述的是-一個線性序列,二維數(shù)組描述的則是一個矩陣。常量表達式1代表行的數(shù)量,常量表達式2代表列的數(shù)量。二維數(shù)組可以看作是一種特殊的一維數(shù)組,如圖所示,虛線左側(cè)為3個一維數(shù)組的首元素,二維數(shù)組是由A[0]、A[1]、A[2]這3個一維數(shù)組組成,每個一維數(shù)組都包含4個元素。
使用數(shù)組的說明:
(1)數(shù)組名的命名規(guī)則和變量名相同。
(2)二維數(shù)組有兩個下標,所以要有兩個中括號。例如:int a[3,4] //不合法
inta[3:4] //不合法

(3)下標運算符中的整數(shù)表達式代表數(shù)組每一個維的長度,它們必須是正整數(shù),其乘積確定了整個數(shù)組的長度。例如:int a[3][4]其長度就是3X4=12。

(4)定義數(shù)組的常量表達式不能是變量,因為數(shù)組的大小不能動態(tài)定義。例如:
int a[]0]; //不合法

2.二維數(shù)組的引用

????二維數(shù)組元素的引用形式為:
數(shù)組名[下標]下標]
二維數(shù)組元素的引用和- -維數(shù)組基本相同。例如:
a[2-1[22-1]//合法
a[2,3]a[2-1,22-1]//不合法

3.二維數(shù)組的初始化

????二維數(shù)組元素初始化的方式和一-維 數(shù)組相同,也分為單個元素逐一的賦值和使用聚合方式賦值。
例如:

myArray[0][1]=2;//單個元素初始化 int A[2][3]={1,2,3,4,5,6};//使用聚合方式初始化

????二維數(shù)組中元素排列的順序是按行存放,即在內(nèi)存中先順序存放第1行的元素,再存放第2行的元素。例如“int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};"的賦值順序是:
先給第1行元素賦值: a[]0)->@[]1]->a[]2]->a[0][3]。
再給第2行元素賦值: a[1][0]->a[1][1]->a[1][2]->a[1][3]。
最后給第3行元素賦值: a[2][0]->a[2][1]~>a[2][2]->a[2][3]。

????使用聚合方式賦值,還可以按行進行賦值,例如:

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

????二維數(shù)組可以只對前幾個元素賦值。例如:

int A[2][3]={1,2,3};//相當于給第一行賦值,其他元素為0

????數(shù)組元素是左值,可以出現(xiàn)在表達式中,也可以對數(shù)組元素進行計算。例如:

b[1][2]=A[1][2]/3; /* 將數(shù)組行列互換*/ #include <iostream> #include <iomanip>//輸出流控制 using namespace std;int fun(int array[3][3]) {int i,j,t;for(i=0;i<3;i++)for(j=0;j<i;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}return 0; } void main() {int i,j; cout<<"轉(zhuǎn)換前"<<endl; int A[3][3]={{1,2,3},{4,5,6},{7,8,9}}; for(i=0;i<3;i++) {for(j=0;j<3;j++){cout<<setw(7)<<A[i][j]; }cout<<endl;}fun(A); cout<<"轉(zhuǎn)換后"<<endl; for(i=0;i<3;i++) {for(j=0;j<3;j++){cout<<setw(7)<<A[i][j]; }cout<<endl;}}

三、字符數(shù)組

????用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組,字符數(shù)組中的一個元素存放-一個字符。字符數(shù)組具有數(shù)組的共同屬性。由于字符串應用廣“泛,C和C++專門為它提供了許多方便的用法和函數(shù)。

1.字符數(shù)組的聲明

????char pWord[11];

2.字符數(shù)組的賦值方式

????可以對數(shù)組元素進行單一賦值

pWord[0]='a'; pWord[1]='b';

????可以對數(shù)組元素進聚合賦值

char pWord[11]={'a','b','c','d','e','f','g','h','i','f','j'};

????如果大括號中提供的初值個數(shù)大于數(shù)組長度,則按語法錯誤處理。如果初值個數(shù)小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面那些元素,其余元素自動定義為空字符。如果提供的初值個數(shù)與預定的數(shù)組長度相同,在定義時可以省略數(shù)組長度,系統(tǒng)會自動根據(jù)初值個數(shù)確定數(shù)組長度。
聚合方式只能在數(shù)組聲明時使用。例如:

char pWord[11]; pWord[11]={'a','b','c','d','e','f','g','h','i','f','j'};//錯誤

????字符數(shù)組不能給字符數(shù)組賦值

char A[5]={'a','b','c','d','e'}; char b[5]; A=b;//錯誤 A[0]=b[0];//正確

????字符數(shù)組常作字符串使用,作為字符串要有字符串結束符“\0”。。可以使用字符串為字符數(shù)組賦值。例如:

char A[]="hello world";等于 char A[]="hello world\n";

????字符串結束符“\0”主要告知字符串處理函數(shù)字符串已經(jīng)結束了,不需要再輸出了。下面通過實例來看一下使用字符串結束符“\0” 和不使用字符串結束符“\0” 的區(qū)別。

/* 未在末尾添加\0*/ #include <iostream>using namespace std;void main() {char A[12];A[0]='a';A[1]='b';printf("%s\n",A); } /* 在末尾添加\0*/ #include <iostream>using namespace std;void main() {char A[12];A[0]='a';A[1]='b';A[2]='\0';printf("%s\n",A); }

3.字符串處理函數(shù)

????strcat函數(shù)

字符串連接函數(shù)strcat的格式如下:
strcat(字符數(shù)組1,字符數(shù)組2)

????其功能是將字符數(shù)組2中的字符串連接到字符數(shù)組1中字符串的后面,并刪去字符串1后的串結束標志“\0

#include <iostream> #include<string>//導入字符串包using namespace std;void main() {char str1[12],str2[6];cout<<"請輸入str1字符串"<<endl;gets(str1);//輸入str1cout<<"請輸入str2字符串"<<endl;gets(str2);strcat(str1,str2);//字符串拼接puts(str1);//打印}

在使用strcat函數(shù)時要注意,字符數(shù)組1的長度要足夠大,否則不能裝下連接后的字符串。

????不使用strcat拼接

#include <iostream> #include<string>//導入字符串包using namespace std;void main() {int i=0,j=0;char str1[12],str2[6];cout<<"請輸入str1字符串"<<endl;gets(str1);//輸入str1cout<<"請輸入str2字符串"<<endl;gets(str2);while(str1[i]!='\0')//遍歷str1字符串,直到遇到str1中的結束符i++;while(str2[j]!='\0')//遍歷str2字符串,直到遇到結束符標志為止str1[i++]=str2[j++];str1[i]='\0';puts(str1);//輸出str1}

????strcpy函數(shù)

字符串復制函數(shù)strepy的格式如下:
其功能是將把字符數(shù)組2中的字符串復制到字符數(shù)組1中。字符串結束志“\0”也一同復制。

說明
①要求字符數(shù)組1應有足夠的長度,否則不能全部裝入所復制的字符串。
②字符數(shù)組1必須寫成數(shù)組名形式,而字符數(shù)組2可以是字符數(shù)組名,也可以是一個字符串常量,這時相當于把一個字符串賦予一個字符數(shù)組。

#include <iostream> #include<string>//導入字符串包using namespace std;void main() {char str1[12],str2[6];cout<<"請輸入str1字符串"<<endl;gets(str1);//輸入str1cout<<"請輸入str2字符串"<<endl;gets(str2);strcpy(str1,str2);//字符串復制puts(str1);//打印}

說明
strcpy函數(shù)實質(zhì)上是用字符數(shù)組2中的字符串覆蓋字符數(shù)組1中的內(nèi)容,而strat函數(shù)則不存在覆蓋等問題,只是單純地將字符數(shù)組2中的字符串連接到字符數(shù)組1中的字符串后面。

????strcmp函數(shù)
字符串比較函數(shù)strcmp的格式如下:
strcmp(字符數(shù)組1,字符數(shù)組2)
其功能是按照ASCII碼順序比較兩個數(shù)組中的字符串,并由函數(shù)返回值返回比較結果。如果字符串1=字符串2,返回值為0;如果字符串1>字符串2,返回值為- -正數(shù);如果字符串1<字符串2,返回值為一負數(shù)。該函數(shù)可用于比較兩個字符串常量,或比較數(shù)組和字符串常量。例如:

#include <iostream> #include<string>//導入字符串包using namespace std;void main() {int i=0 ; char str1[6],str2[6];cout<<"請輸入str1字符串"<<endl;gets(str1);//輸入str1cout<<"請輸入str2字符串"<<endl;gets(str2);i=strcmp(str1,str2);//字符串比較cout<<"i="<<i<<endl;}

????strlen函數(shù)

????測字符串長度函數(shù)strlen的格式如下:
strlen(字符數(shù)組名)
其功能是測字符串的實際長度(不含字符串結束標志“\0”),函數(shù)返回值為字符串的實際長度。

#include <iostream> #include<string>//導入字符串包using namespace std;void main() {char str1[6];cout<<"請輸入str1字符串"<<endl;gets(str1);//輸入str1cout<<strlen(str1)<<endl; }

總結

本文講解了C++中的數(shù)組


作者:電氣-余登武

總結

以上是生活随笔為你收集整理的C++学习笔记6[数组]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。