国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++中字符串以及數(shù)組和指針的互相使用講解

2020-01-26 14:52:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C++字符串與指針
在C++中可以用3種方法訪問(wèn)一個(gè)字符串(在第5章介紹了前兩種方法)。
用字符數(shù)組存放一個(gè)字符串

【例】定義一個(gè)字符數(shù)組并初始化,然后輸出其中的字符串。

#include <iostream>using namespace std;int main( ){  char str[]="I love CHINA!";  cout<<str<<endl;  return 0;}


運(yùn)行時(shí)輸出:

I love CHINA!


用字符串變量存放字符串

【例】定義一個(gè)字符串變量并初始化,然后輸出其中的字符串。

#include <string>#include <iostream>using namespace std;int main( ){  string str="I love CHINA!";  cout<<str<<endl;  return 0;}

用字符指針指向一個(gè)字符串

【例】定義一個(gè)字符指針變量并初始化,然后輸出它指向的字符串。

#include <iostream>using namespace std;int main( ){  char *str="I love CHINA!";  cout<<str<<endl;  return 0;}

對(duì)字符串中字符的存取,可以用下標(biāo)方法,也可以用指針?lè)椒ā?/p>

【例】將字符串str1復(fù)制為字符串str2。

定義兩個(gè)字符數(shù)組str1和str2,再設(shè)兩個(gè)指針變量p1和p2,分別指向兩個(gè)字符數(shù)組中的有關(guān)字符,通過(guò)改變指針變量的值使它們指向字符串中的不同的字符,以實(shí)現(xiàn)字符的復(fù)制。

#include <iostream>using namespace std;int main( ){  char str1[]="I love CHINA!",str2[20],*p1,*p2;  p1=str1;p2=str2;  for(;*p1!='//0';p1++,p2++)    *p2=*p1;  *p2='//0';  p1=str1;p2=str2;  cout<<"str1 is: "<<p1<<endl;  cout<<"str2 is: "<<p2<<endl;  return 0;}

運(yùn)行結(jié)果為:

str1 is: I love CHINA!str2 is: I love CHINA!


這個(gè)例子用來(lái)說(shuō)明怎樣使用字符指針。其實(shí),對(duì)例6.13來(lái)說(shuō),用string變量來(lái)處理是十分簡(jiǎn)單的:

  string str1=″I love CHINA!″,str2; //定義string變量  str2=str1; //將str1復(fù)制到str2

C++數(shù)組與指針
指向數(shù)組元素的指針

一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有相應(yīng)的地址。指針變量既然可以指向變量,當(dāng)然也可以指向數(shù)組元素(把某一元素的地址放到一個(gè)指針變量中)。所謂數(shù)組元素的指針就是數(shù)組元素的地址。

  int a[10];  //定義一個(gè)整型數(shù)組a,它有10個(gè)元素  int *p; //定義一個(gè)基類型為整型的指針變量p  p=&a[0]; //將元素a[0]的地址賦給指針變量p,使p指向a[0]

在C++中,數(shù)組名代表數(shù)組中第一個(gè)元素(即序號(hào)為0的元素)的地址。因此,下面兩個(gè)語(yǔ)句等價(jià):

  p=&a[0];  p=a;

在定義指針變量時(shí)可以給它賦初值:

  int *p=&a[0]; //p的初值為a[0]的地址


也可以寫成

  int *p=a; //作用與前一行相同


可以通過(guò)指針引用數(shù)組元素。假設(shè)p已定義為一個(gè)基類型為整型的指針變量,并已將一個(gè)整型數(shù)組元素的地址賦給了它,使它指向某一個(gè)數(shù)組元素。如果有以下賦值語(yǔ)句:

  *p=1; //對(duì)p當(dāng)前所指向的數(shù)組元素賦予數(shù)值1


如果指針變量p已指向數(shù)組中的一個(gè)元素,則p+1指向同一數(shù)組中的下一個(gè)元素。

如果p的初值為&a[0],則:
1) p+i和a+i就是a[i]的地址,或者說(shuō),它們指向a數(shù)組的第i個(gè)元素,見(jiàn)圖6.12。

2) *(p+i)或*(a+i)是p+i或a+i所指向的數(shù)組元素,即a[i]。

可以看出,[]實(shí)際上是變址運(yùn)算符。對(duì)a[i]的求解過(guò)程是: 先按a+i×d計(jì)算數(shù)組元素的地址,然后找出此地址所指向的單元中的值。

3) 指向數(shù)組元素的指針變量也可以帶下標(biāo),如p[i]與*(p+i)等價(jià)。

根據(jù)以上敘述,引用一個(gè)數(shù)組元素,可用以下方法:
下標(biāo)法,如a[i]形式;
指針?lè)ǎ?(a+i)或*(p+i)。其中a是數(shù)組名,p是指向數(shù)組元素的指針變量。如果已使p的值為a,則*(p+i)就是a[i]。可以通過(guò)指向數(shù)組元素的指針找到所需的元素。使用指針?lè)苁鼓繕?biāo)程序質(zhì)量高。

【例】輸出數(shù)組中的全部元素。假設(shè)有一個(gè)整型數(shù)組a,有10個(gè)元素。要輸出各元素的值有3種方法:

1) 下標(biāo)法。

#include <iostream>using namespace std;int main( ){  int a[10];  int i;  for(i=0;i<10;i++)  cin>>a[i]; //引用數(shù)組元素a[i]  cout<<endl;  for(i=0;i<10;i++)   cout<<a[i]<<" "; //引用數(shù)組元素a[i]  cout<<endl;  return 0;}

運(yùn)行情況如下:

9 8 7 6 5 4 3 2 1 0

主站蜘蛛池模板:
禹城市|
漯河市|
田东县|
新龙县|
临澧县|
天气|
金溪县|
鸡东县|
左贡县|
梨树县|
双鸭山市|
北安市|
祁连县|
达拉特旗|
淄博市|
呼和浩特市|
黄平县|
朝阳市|
长宁县|
额济纳旗|
雅安市|
崇信县|
嘉荫县|
陆丰市|
南投市|
长子县|
岳西县|
栖霞市|
靖宇县|
类乌齐县|
河北省|
仲巴县|
萨迦县|
彭山县|
昭平县|
南江县|
镇巴县|
普宁市|
紫云|
金昌市|
和平县|