C ++研究ノート

指示を理解する

#includeプリプロセッサの主な機能は、コンパイラがソースコードをコンパイルする前に、対応するプリコンパイルされた命令を追加または置換することです。これにより、システムの定義済み関数とユーザーソースコードで呼び出されるさまざまな識別子を正しく認識できます。# include <iostream>は、iostreamヘッダーファイルを現在の注文ソースコードに追加することを意味します。iostreamヘッダーファイルには、主にシステムの標準の入力および出力関数とデータ宣言および定義が含まれています。

名前空間stdの使用を理解します。

プリコンパイラを使用する主な機能は、現在のソースコードファイルで使用されている名前空間がstdであり、名前空間がC ++言語であることを示すことです。大きなプログラムを作成する問題を解決するために、複数のベンダーの独立したC ++コードが識別子の名前空間プロセス。つまり、変数aが2つのコードで1と2を表す場合、コード統合中にエラーが報告されます。異なるベンダーのコードモジュールには独自のコードモジュールがあり、ユーザーはこのモジュールは、使用しているメーカーのコードモジュールを明確にマークする必要もあります。プリコンパイルされた命令を使用すると、この機能を実現し、上記の問題を解決できます。

ポインタ

コンピュータプログラムの記憶情報はポインタで実現できます。ポインタは変数であり、特定の値ではないか、格納する値が別の値のアドレスです。通常の変数のアドレスを見つけるには、前に追加します。アドレス演算子&、次の例を参照してください。

ここに画像の説明を挿入
アドレスは16進表記で表示されます。ポインタを定義した場合、ポインタの前に*(逆参照演算子)を追加すると、ポインタ変数に対応するアドレスに格納されている値を取得できます。以下の例を参照してください。ポインタを定義してアスタリスクを理解する方法を学びます(乗算記号とまったく同じです。あまり心配しないでください。C++はコンテキストに応じて乗算するか間接参照するかを決定します)。

#include<iostream>
using namespace std;
int main()
{
    
    
	int m=2;
	//int*n;
	//int *n;
	//int* n;
	int * n;
	n=&m;
	cout<<n<<' '<<*n<<endl;
	return 0;
}

出力:

0x6ffe04 2

アスタリスクの前後のスペースはオプションで、追加してもしなくてもかまいません。コメントアウトされた3行は正しいです。宣言ポインタには、アスタリスクを前に追加して格納されているアドレスと同じ値を使用できます。実際、型は、その値(* n)を表す別の方法です。アスタリスクはポインターにのみ対応できます。つまり、次のようになります。

int *n,h;

ポインタnと整数変数hが定義されています。hがポインタでもある場合は、次のことを行う必要があります。

int *n,*h;

?:

ステートメント:

z=x<y?x:y;

意味は、xとyの小さい値を取ることです

空のステートメント

例:

if(c>1);//空语句 ;
else
	cout<<"Good"<<endl;

switchステートメント

//结构
switch(<变量>)
{
    
    
	case <判断1>:
		<执行1>;
		break;//终止
	case <判断2>:
		<执行2>;
		break;
	...
	default://前面的都没有执行
		<执行n+1>;
		break;
}

簡単な例として、平均年の月を入力し、対応する日数を出力します。

//输入月份,输出月份的天数
#include <iostream>
using namespace std;
int main() {
    
    
	int month;
	cout<<"Please input the month:"; //输出提示信息
	cin>>month; //输入月份
	if (month<1 || month >12) {
    
    
		cout<<"输入错误!"<<endl;
	return 1;
	}
	switch(month) {
    
    
		case 2:
			cout<<"28天"<<endl;
			break;
		case 4: case 6: case 9: case 11://多种情况同时判断
			cout<<"30天"<<endl;
			break;
		default://31天放在最后用 default 简化代码
			cout<<"31天"<<endl;//最后可以不用 break 了
	}
	return 0;
}

中断せずに、スイッチの複数のエントリを使用して問題を解決します。
年、月、日を入力し、これが年の日であると出力します。

#include<iostream>
#include<cstdio>
int main()
{
    
    
	int y,m,d,e,su=0;
	while(scanf("%d%d%d",&y,&m,&d) !=EOF){
    
    
		if(y%4==0 && y&100!=0 || y%400==0)
			e=29;
		else
			e=28;
		switch(m){
    
    
			case 12:
				su+=30;
			case 11:
				su+=31;
			case 10:
				su+=30;
			case 9:
				su+=31;
			case 8:
				su+=31;
			case 7:
				su+=30;
			case 6:
				su+=31;
			case 5:
				su+=30;
			case 4:
				su+=31;
			case 3:
				su+=e;
			case 2:
				su+=31;
			case 1:
				;
		}
		su+=d;
		printf("%d\n",su);
	}
	return 0;
}

おすすめ

転載: blog.csdn.net/interestingddd/article/details/113729800