配列を引数としてデフォルト値のint main()
に渡すのが難しいです。たとえば :デフォルト値を持つパラメータとして配列を渡すint main()
int main(int a){}
は素晴らしく動作します。私は、
int main(int a[1] = {0,1})
をgoogleing、かなりの量の後:int main()
を渡す
int main(int a = 1){}
ないとして配列も素晴らしく動作します:
int main(int a[3])
しかし、これら二つの概念を組み合わせること破るようです解決策が見つかりませんでした。
私を援助してください、あなたは私の唯一の希望です! ( - ちょうど学習にないポイント用)
EDITは
この目的、要するに、私の教授は、最近発行された挑戦のためにできるだけライン私のコードを、作ることです。割り当ては、再帰的「12日・オブ・Chirstmasの」プログラムを作成することです
これは私がメインの引数として詩の配列を渡す代わりにしたいと思います私の現在のプログラム
#include <iostream>
#include <string>
void p(std::string v){std::cout<<v;}
std::string v[13] = {"A Partridge in a Pear Tree.\n\n","2 Turtle Doves\n","3 French Hens\n","4 Colly Birds\n","5 Gold Rings\n","6 Geese-a-Laying\n","7 Swans-a-Swimming\n","8 Maids-a-Milking\n","9 Ladies Dancing\n","10 Lords-a-Leaping\n","11 Pipers Piping\n","12 Drummers Drumming\n",""};
int main(){
switch(v[12].length()){
case 12:system("pause"); return 0;
case 11:p(v[11]);
case 10:p(v[10]);
case 9: p(v[9]);
case 8: p(v[8]);
case 7: p(v[7]);
case 6: p(v[6]);
case 5: p(v[5]);
case 4: p(v[4]);
case 3: p(v[3]);
case 2: p(v[2]);
case 1: p(v[1]);
case 0: p(v[0]);
}v[12] += "0";
main();
}
ですそれを関数の上に宣言します。私は知っている、ほとんどのメモリ/スタックを意識していません。しかし、それは行を排除するでしょう:)
をあなたがしたいのはなぜこれをして、なぜあなたは 'main'にそれをしなければならないのですか? –
'int'または配列のみをとる' main() '関数は、標準のC++では' main() 'の有効な形式ではありません。ここで何をしようとしていますか? –
int a [1]は1つの要素の配列ではない配列内の単一要素です – Jordan