C++個人学習の間違いやすいノート

1611 ワード

int n = 8;
int & r1 = n;
const int r2 = r1;

変数のみを参照できます.戻り値が変数ではない式を参照できません.
通常参照に値を割り当てることはできません
非常参照は通常参照で初期化できません
2
    int a = 1,b = 2;

	int & r = a;

	r = b;

	r = 7;

	cout << a << endl;

最後に7を出力します
3
定数ポインタの値は変更できますが、その定数を参照して変更することはできません.
他の変数を指すことができます.ただし、指向する変数を変更することはできません.
4
 char * p = new char[10];       

   p[0] = 'K'; 

   delete [] p;


delete配列の場合は[]
5
A.               。


B.    ,     ,       ,       。


C.                       ,                。

ABCは間違っています.
6
2つの数の値を入れ替える
#include 
using namespace std;
class A
{
	public:
	int x;
	int getX() { return x; }	
};
void swap(A &a, A &b)
{
	int  tmp = a.x;
	a.x = b.x;
	b.x = tmp;
}
int main()
{
	A a,b;
	a.x = 3;
	b.x = 5;
	swap(a,b);
	cout << a.getX() << "," << b.getX();
	return 0;
}

もう一つのケースでは
#include 
using namespace std;

void swap(int* &a, int* &b)
{
	int * tmp = a;
	a = b;
	b = tmp;
}
int main()
{
	int a = 3,b = 5;
	int * pa = & a;
	int * pb = & b;
	swap(pa,pb);
	cout << *pa << "," << * pb;
	return 0;
}

 7
奇妙な戻り値
#include 
using namespace std;
int &getElement(int * a, int i)
{
	return a[i];
}
int main()
{
	int a[] = {1,2,3};
	getElement(a,1) = 10;
	cout << a[1] ;
	return 0;
}

updating……