• ベストアンサー

複数の変数を宣言する時、同時に初期化?できないでしょうか?

複数の変数を宣言する時、同時に初期化?できないでしょうか? 例えば、 int a,b,c; とした時に、それぞれに1を入れる、みたいに。

質問者が選んだベストアンサー

  • ベストアンサー
  • tancoro
  • ベストアンサー率52% (11/21)
回答No.1

int a = 1, b = 1, c = 1; と記述すれば初期化できると思いますよ。

nabewari
質問者

お礼

なるほど。 int a, b, c = 1; だとcだけなんですが、このくらい簡単に記述する方法はないですよね?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • hatimiti
  • ベストアンサー率68% (26/38)
回答No.3

int a, b, c = a = b = 1; これは、可読性的に大問題ですね、、、

全文を見る
すると、全ての回答が全文表示されます。
  • hoge_piyo
  • ベストアンサー率57% (15/26)
回答No.2

int a, b, c = 1; だとcだけなんですが、このくらい簡単に記述する方法はないですよね? Javaだとないですね。 (ローカル変数ではなくインスタンス変数とかならintは勝手に0で初期化されたりはしますが) そもそもJavaの場合は使うときに変数を宣言するようにして、事前に宣言して初期化しておく必要がないようにコーディングするべきでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 変数の宣言、初期化

    C++を習い始めたばかりの初心者です。下のプログラムを教えてください。 2つの整数値をキーボードから入力し、それをint型変数xとyに格納する。 一方double型変数aとbをそれぞれ5.3と2.5で初期化する。 このときa*x+b*yを算出し出力するプログラムを作成せよ。 本当に始めたばかりなので見当違いなことを書いてるかもしれませんが 自分でやってみるとこんなふうになりました。 #include <iostream> using namespace std; int main() { int x,y; cin>>x>>y;  ←キーボードで入力する。 int a(5.3);  ←初期化 int b(2.5); x=double(a);  ←キャスト y=double(b); cout<<a*x+b*y<<endl; return 0; } お願いします。

  • パブリック変数を宣言する時に・・・

    エクセルVBAの質問です。 モジュールAとBがあるとしまして、 Aの中にあるプロシージャからBの中のプロシージャを呼び出す場合、 変数を引き渡したいとしたらパブリック変数を使いますよね? この場合宣言は、 Aの宣言セクションでするのか、 Bの宣言セクションでするのか、 あるいは両方で同じ変数を宣言するのか、 どれなんでしょ?

  • 参照型変数を宣言と同時に初期化しない

    参照型変数は、宣言と同時に初期化する必要があります。 宣言時には参照先が決定しておらず、条件によって動的に参照先を決定したい場合、どのように記述すれば良いでしょうか? ------------------------------------------------------------------- CMyClass& obj; // 条件によって異なるオブジェクトを参照したい switch (mode) { case A: obj = objA; // 外部で生成済みのオブジェクトへの参照 break; case B: obj = objB; break; ・・・ case X: obj = objX; break; } // 以下、mode共通の処理 obj.hogehoge(); ------------------------------------------------------------------- 三項演算子を入れ子にして一行に収めれば可能ですが、スマートではないし見た目にも良くありません。 CMyClass& obj = A ? objA : (B ? objB : objC);

  • C言語のグローバル変数の初期化について

    C言語において int a = 1; // 動的グローバル変数 static int b = 2; //静的グローバル変数 funcA(){ int c = 3; // 動的ローカル変数 static int d = 4; //静的グローバル変数 ・ ・ ・ } 上記のように各種変数を初期化したとします。 "c"のような動的ローカル変数であれば、funcA()が呼ばれたときに毎回初期化されますよね? では ・"d"のような静的ローカル変数は、初めてfuncA()が呼ばれたときに初期化されるのですか? ・"a","b"のyほうなグローバル変数は、どのタイミングで初期化されるのですか? 以上2点について伺いたいと思います。 ちなみに、組み込み機器むけのソフトウェアを想定しています。

  • static付き宣言の初期化

    static付きの宣言をした場合の変数の初期化について教えてください。(ANSI-C) int func(void) { static int si; static char sca[10]; static char *scp; /* 何らかの処理 */ return 0; } このように関数内でstatic付きで宣言したとき、変数はどのように初期化されますか? siは0、sca[0]からsca[9]までは'\0'、scpはNULLで初期化されますか? また、このようなstatic付きの宣言が関数の外にあった場合は、どのように初期化されますか?

  • 変数宣言・変数定義のちがいって??

    変数宣言・変数定義のちがいって?? 同じ意味なんでしょうか? 私の解釈では、 ・宣言っていうのは、今からこの変数を使いますよってことで。 ・定義っていうのは、実際に変数の領域をわりあてるってイメージなんですけど・・ なので、 int a; ←これは変数定義 extern int a; ←これは変数(extern)宣言 あってるでしょうか?

  • 自作関数のでの変数宣言について

    #include <stdio.h> int i,j; int cale(int i,int j) //cale関数の内容;iとjの宣言も同時実施!!! { int r;      r=i+j; return r; } 3行目でcale関数の定義をしています。2行目では変数i,jの初期宣言をしていますが、本によると2行目は必要なくコンパイルしても問題がありませんでした。ボーランドですけど。 教えて欲しいのは2行目の変数宣言は必要なのですか?? 正規の書き方を教えてください。

  • ”int *a,*b”というポインタ変数宣言した値でa=&bということ

    ”int *a,*b”というポインタ変数宣言した値でa=&bということはできる? ”int *a,*b”このような変数をグローバル宣言した場合、 a=&bというようなことはできるのでしょうか? ”int *a,*b” この宣言で、 aが10番地 bが20番地に定義されたと仮定しています。

  • PHP 変数の初期化について教えてください

    PHPを勉強中の者です。他のプログラム言語の使用経験は一切ありません。 PHPにおいては変数の初期化は絶対に必要ではないということで、今まで特に気にすることは無かったのですが、マニュアルにもあるように初期化することは良い習慣とのことで正しい初期化を知りたく質問させていただきます。 他のプログラムにおいては最も最初に解決すべき部分であり、恥を晒すようですが、なにとぞアドバイスをいただけたらと思います。 以下質問になります。 ---------------------------------- 1.私の解釈では変数の初期化とは、変数の型を決め初期値を入れる、と認識していますが、これは正しいのでしょうか。 2.Javaの参考書で変数の部分を読んでみたところ、型を決めただけでは初期化とはいわず、型決めと初期値を入れた工程(工程ってのもおおげさかもしれませんが)が初期化と記載がありました。 PHPにおいては型の宣言は不要とのことで下記のように記載すれば型及び初期値が決まると解釈していますが、この解釈は正しいのでしょうか? $a = 1;  //これは整数 $d = 1.1 //これは浮動小数点 $b = "aa"; //これは文字列 $c = true; //これは論理値 $a = array(); //これは配列 3.他の参考になりそうなサイトで配列を代入する変数を初期化する場合として下記のような記載がありました。 unset($a); $a = array("aa", "bb"); unsetは変数を解放するためのものであり、私だったらこの場合の初期化として $a = array(); を書く方が適しているように思いますが、配列を代入する変数を初期化する場合、上記サンプルと私の考えとどちらが正しいのでしょうか? 4.変数を初期化するタイミングについて 質問のために、サンプルコードを書きました。まず下記サンプルを見てください。 ※このサンプルコードはformエリアからの入力値によって計算を行なうものと想定して下さい。値を受けた後の処理工程を記載しています。また、受ける値の正当性チェックについて省いています。 (1)(2)については質問箇所です。 (1) if(isset($_GET['send'], $_GET['int1'], $_GET['int2'])){ (2) $a = $_GET['int1']; $b = $_GET['int2'] }else{ exit; } $c = $a + $b; echo $c; サンプルコードは以上となります。仮にこういうコードがあったとして、初期化するタイミングがわかりません。コード中に(1)(2)と番号を振りましたが、個人的にこの2箇所のどちらかで初期化すればよいだろうと思い込んでいますが、こういうコードの場合、どの部分で初期化した方がいいのでしょうか? ---------------------------------- 質問は以上となります。 何卒宜しくおねがいします。

    • ベストアンサー
    • PHP
  • c# 配列変数の宣言について

    c#の配列変数の宣言についてですが、 以下の2つの宣言は同じことなのでしょうか。 (1)int[] num = {1,2,3}; (2)int[] num = new int{1,2,3}; 本では(2)のような定義していますが何かルールのようなものがあるのでしょうか。 宜しくお願いします。

このQ&Aのポイント
  • 長年使用しているブラザーの複合機MFC-J6510DWで、イエローインク交換後のトラブルに困っています。
  • 印刷を保持するインクが足りないというエラーメッセージが表示され、インクを何度か交換しましたが解決しません。
  • 使用環境はMacOSで無線LAN接続、電話回線はISND回線です。どのように対処すればよいでしょうか?
回答を見る