レビュー論文のC ++のポインタ

あるポインタ?0.0

基本的な説明:

C ++より言語に接触する下地、基礎となるメモリよりも何よりも、各メモリアドレス対応です。ポインタは、彼が符号付き整数を表し、ちょうどint型のような、新しいタイプのですが、彼は16進アドレスの文字列であると言いました。x86のでは、順序で完全にアドレスポインタへ。だから、4バイトとして定義され、x64-で、8バイトです!

基本的な要素:

図1に示すように、書込み動作をする必要がある
、2メモリ容量を動作させます

リード構文:

名*ポインタのデータ型;
例: int型* PSTR。

混乱の定義:

int型* PSTR = 0、列str = 0;
int型* pstr1 = 0、* STR1 = 0;

2行をコントラスト:私は多くの初心者プログラマは問題は一つではない発見した可能性があると考えているが、我々は、1行目と2行目との違いを見て、そして第二の可変は、アスタリスクがあるかどうかです。何が実際にそれを説明するつもりですか?

コードは以下の通りであります:

COUT <<型ID(PSTR).nameの()<< "『<<型ID(文字列).nameの()<< ENDL;
COUT <<型ID(pstr1).nameの()<<』" <<型ID(0009) .nameの()<< ENDL。

結果:

ここに画像を挿入説明
-------------思いやりのある人には違いは小さな問題が、発見されていることを信じて!しかし、それは-----------------気付か価値があります!

概念を混同?存在しません:

Ⅰ:ポインタの配列とポインタ配列

図1に示すように、ポインタの配列:配列の性質は、例えば:INT型ポインタ配列;それだけ配列で型int、short型配列の配列と同じであるが、各部材がint *型です。

2、ポインタの配列:基本的にポインタ、彼とint型のポインタ、短い髪のポインタが、それはどのような違いを生むのでしょうか?彼は、配列を指し、ちょっと大きな何かに言及していました。

コード例(1理解します):

	int a{ 1 }, b{ 2 }, c{ 3 };  //定义三个变量
	int* pArr[3]{}; //定义指针数组
	pArr[0] = &a; pArr[1] = &b; pArr[2] = &c;//每个成员都是指针而已
	
	int aa[3] = { 1,2,3 }; //定义一个大小3的数组
	int(*Arrp)[3]{};//定义数组指针  
	Arrp = &aa; //它指向一个大小为3的数组

Ⅱ定数ポインタ、ポインタ定数定数定数ポインタポインティング

1、定数ポインタ:基本的にポインタ!可変ポインタが対応する(自分の)例えば、生成されます。intポインタの問題、短いポインタの友人。それは何ですか?ポインタ定数、定数は何ですか?constのint型、それのconstの短い;定数の変化?答えは、サイズの定数を変更する、それが変数ではなく、* = xxxはありません、それはそれをやって?それも、他の変数の定数を指すことができます

2、ポインタ定数:自然が一定であります!int型の定数、短い定数がありますが、それだけでポインタ型定数です。例:int型のx、int *型のconst xに一定のポインタであり、それはそれが備わっています何ですか?それは数を指すことができますが、ポイントを変更することはできません。しかし、それは、可変数の値によって変更することができます*

** 3、CONSTポインタ定数:**上記の2つの機能が、このされ満足

コード例:

1、定数ポインタ

コード:

	const int str1 = 10; const int str2 = 20; int str3 = 30;
	//定义常量指针 	
	const int* cpstr1{ &str1 }; //*cpstr1 = 5; 都不能修改值
	cout << "cpstr1 = " << *cpstr1 << endl;
	cpstr1 = &str2;  // *cpstr1 = 5; 都不能修改值
	cout << "cpstr1 = " << *cpstr1 << endl;
	cpstr1 = &str3;  // *cpstr1 = 5; 都不能修改值
	cout << "cpstr3 = " << *cpstr1 << endl;

結果:
ここに画像を挿入説明
概要:定数ポインタは、他の変数または定数を指すことができるが、アドレス値にアスタリスクポイントによって変更することができません

図2に示すように、ポインタ定数

コード:

	int str1{ 10 }, str2{ 20 };
	int* const pcstr = &str1;
	cout << "修改前 str1=" << *pcstr << endl;
	//pcstr = &str2; 这句话不可能成功,因为指向了就不能改变了
	*pcstr = 30;
	cout << "修改后 str1=" << str1 << endl;

結果:
ここに画像を挿入説明
概要:ポインタが最初の一定の数を指すことができ、点の後に変更することができない、変数は、アスタリスクによって指さ値を変更します

図3に示すように、一定のconstポインタ

コード:

	const int str1{ 10 }; const int str2{ 20 };
	const int* const cpcstr = &str1;
	cout << "str1=" << *cpcstr << endl;
	//*cpcstr = 30; //这句话不可能成功
	//cpcstr = &str2;//这句话也不可能成功

結果:
ここに画像を挿入説明
概要:ポイント後、ポイントを変更することはできません、アドレスの値を指すアスタリスクによって修飾することができない、要するに、読み取り専用であります

彼らのハードワークに感謝!いくつかの真実があることを感じて、旧鉄、オハイオ州のようなポイントということを忘れないでください!ああ、ありがとうございます!

リリース8元の記事 ウォンの賞賛9 ビュー517

おすすめ

転載: blog.csdn.net/u010092716/article/details/104326624