C言語なら俺に聞け(入門編)Part 127©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2015/02/18(水) 16:31:28.31ID:s5Vrc8eg★前スレ
C言語なら俺に聞け(入門編)Part 126
http://peace.2ch.net/test/read.cgi/tech/1416882087/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 168代目
http://peace.2ch.net/test/read.cgi/tech/1408962564/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています
0153デフォルトの名無しさん
2015/03/11(水) 05:04:19.46ID:blS4wY8nそれは俺の理由であって >>148 の理由はわからかったからな
ま、>>139 は内容として妥当ということか
0154デフォルトの名無しさん
2015/03/11(水) 05:24:18.74ID:5wCk23b3文法的には正しい。作法としては望ましくない。
浮動小数点数の定数はそのことを明示するべき。
保守性が低下する原因となる。
>>140
ループの終了判断や 2変数の一致判断などでは==の使用は禁じ手。
ゼロ割り回避の定数0.0は厳密なゼロ。
微少判定値εは無意味。
>>141
NaNの扱いは処理系依存。
そもそも発生させるべきではない。
0155デフォルトの名無しさん
2015/03/11(水) 06:19:38.00ID:blS4wY8n>ゼロ割り回避の定数0.0は厳密なゼロ。
>微少判定値εは無意味。
しかし微小判定をしないでそのまま計算するというのは、結果が double なら ±∞とかになるのを許容するわけだよね
すると
>NaNの扱いは処理系依存。
>そもそも発生させるべきではない。
の項目との一貫性がなくなるが?
0156デフォルトの名無しさん
2015/03/11(水) 06:59:27.55ID:f9VlD4f7何故それを許容するということになるのか?
尤もNaNは無限大を意味するものではないが。
0157デフォルトの名無しさん
2015/03/11(水) 07:28:51.13ID:blS4wY8n>演算結果が無限大にならないよう計算を回避する話をしているのに、
>何故それを許容するということになるのか?
その「無限大にならないように計算を回避する」ために微小判定が必要なのではないか?と主張している
>尤もNaNは無限大を意味するものではないが。
たしかに。
NaN、±∞ を非数値類としてまとめて扱っているとしてくれ
0158デフォルトの名無しさん
2015/03/11(水) 07:40:19.66ID:fyi4MFv2被除数のレンジがわからんことにはεを決められないし、
適当に決めればオーバーキルになる。
0159デフォルトの名無しさん
2015/03/11(水) 07:44:50.96ID:YmZds4cJ>その「無限大にならないように計算を回避する」ために微小判定が必要なのではないか?と主張している
無限大すなわちゼロ割だ。ゼロ割は厳密なゼロで除算を行った場合にのみ発生する。
そして、0と書けば厳密なゼロになる。
厳密なゼロと等しい場合だけ回避すれば良い。
↓はまぐれ当たりで正しい事を言っていたようだな。死ねバカ。
> 0 と書いて浮動小数点の 0 になるのはあたりまえ
0160デフォルトの名無しさん
2015/03/11(水) 08:26:02.66ID:blS4wY8n>無限大すなわちゼロ割だ。ゼロ割は厳密なゼロで除算を行った場合にのみ発生する。
乗除算は double の数値について閉じていない
http://codepad.org/jXxiNkwJ
>>158
ま、それはそのとおり、>>141 の趣旨だね
>>159
切れやすい人だね‥
0161デフォルトの名無しさん
2015/03/11(水) 08:32:39.43ID:f9VlD4f7無限大を回避すること自体は目的ではなかった。
真の目的は0で除算すると言う不合理そのものを回避することだった。
ゼロ割りという演算が定義出来ない事態への対応をどうするか?
浮動小数点データで演算が定義できないのは仮数部、指数部すべてのビット列が0の場合に除算を行うこと。
厳密な0を対象としている。
微小判定値はそもそも関係しない話。
0162デフォルトの名無しさん
2015/03/11(水) 09:38:01.37ID:q1j3tFZ0if (n == zero){
kekka = zero;
}
0163デフォルトの名無しさん
2015/03/11(水) 09:41:27.18ID:aCIUJ7gk定義できないってIEEE754では定義されてるでしょ
0164デフォルトの名無しさん
2015/03/11(水) 09:48:27.96ID:m5Pz5hnh0165デフォルトの名無しさん
2015/03/11(水) 09:56:30.98ID:aCIUJ7gk0166デフォルトの名無しさん
2015/03/11(水) 14:12:48.49ID:fuU+S4pzこれを演算と呼んでいいのか疑問ではあるが
0167デフォルトの名無しさん
2015/03/11(水) 14:24:31.64ID:wt06PQLx0ってのは本来存在しない。必ず0以外の値になる。
0に近い値を0として扱ってるだけだ。
0168デフォルトの名無しさん
2015/03/11(水) 16:03:50.64ID:183ZCayldo{
pritnf("1文字を入力");
ch = getch();
}while((ch !='A')&&(ch !='B')&&(ch !='C')&&(ch !='D')
たとえば、Aって1文字入力されるとAって答え出るけど
でも、&&が入ってるんで 「ABCD」って、入力しないといけないんじゃないの?
0169片山博文MZ ◆T6xkBnTXz7B0
2015/03/11(水) 16:15:15.62ID:cFDo18bswhileの条件「(ch !='A')&&(ch !='B')&&(ch !='C')&&(ch !='D') 」は、繰り返す条件を表している。
比較演算子!=は等しくないとき真となる。
つまり、chが'A'でなく、かつchが'B'でなく、かつchが'C'でなく、かつchが'D'でなければ
繰り返す。
「ch !='A'&&ch !='B'&&ch !='C'&&ch !='D'」の否定は「ch =='A'||ch =='B'||ch =='C'||ch =='D'」である。
この辺の変形は、大学で論理学を勉強するとよくわかるだろう。
0170デフォルトの名無しさん
2015/03/11(水) 16:17:26.33ID:KXjOEnHvお疲れさま、だ‥
0172デフォルトの名無しさん
2015/03/11(水) 20:26:05.48ID:lYcCfnhhA を入力すると式 ch != 'A' が false だから、
while 内の式全体が false だとわかりきってる。だから残りは評価せずに while を抜ける。
Cファミリーはこういうショートサーキット評価とかいうのがされるのが多いな。
0173デフォルトの名無しさん
2015/03/11(水) 21:05:39.01ID:YmZds4cJ>しかし微小判定をしないでそのまま計算するというのは、結果が double なら ±∞とかになるのを許容するわけだよね
1未満で除算すればオーバーフローの可能性があるわけなので、>>137の除算前のチェックを1未満にしなきゃいけないな。
乗算、加算、減算に関しても同様。
アホか。死ね。バカ。
0174デフォルトの名無しさん
2015/03/11(水) 21:20:38.14ID:1lChT+Cl乗算も同じで、加減算に関しては0しかできないな
0175デフォルトの名無しさん
2015/03/12(木) 00:21:11.03ID:sWZMM9R0一方、ゼロ割は計算前にチェック出来る。浮動小数点演算でも、
厳密なゼロ以外では発生しないので、==で比較するのが正しい。
まとめるとQzはうんこ。とっとと死ね。
0176デフォルトの名無しさん
2015/03/12(木) 01:22:08.10ID:ydOF1vc80をヌルとして扱うならヌルかヌル以外かで、==0でも良い。
0177デフォルトの名無しさん
2015/03/12(木) 01:32:32.38ID:noLiW6MT0178デフォルトの名無しさん
2015/03/12(木) 01:38:54.98ID:noLiW6MTすみません、aにその結果を代入するではなく、aにその結果を足すでした
0179デフォルトの名無しさん
2015/03/12(木) 03:35:23.39ID:9E3YKRs20180デフォルトの名無しさん
2015/03/12(木) 04:54:29.43ID:T8hzHXTXおい負け犬、QZに負けるなんて恥ずかしいぞ
0181デフォルトの名無しさん
2015/03/12(木) 08:32:56.01ID:noLiW6MTそれが限界でしょうか?減らしに減らした結果自分もそれに行きついたのですが...
0182デフォルトの名無しさん
2015/03/12(木) 08:43:41.47ID:sWZMM9R0チンカスくん。まだ生きてたの? 作りかけで放置してある末尾再帰のまとめ完成してあげようか?
あれは笑えた。
0183デフォルトの名無しさん
2015/03/12(木) 10:11:13.10ID:Wl76Ct9a>お前PGとしてのセンスが欠けてるわ
0184デフォルトの名無しさん
2015/03/12(木) 10:59:07.81ID:UwEx4TaEうるう年を探す関数なんですけど、100ってなんですか?
0185デフォルトの名無しさん
2015/03/12(木) 11:11:35.47ID:9E3YKRs2wikipedia より
> グレゴリオ暦では、次の規則に従って400年間に(100回ではなく)97回の閏年を設ける。
> 1. 西暦年が4で割り切れる年は閏年
> 2. ただし、西暦年が100で割り切れる年は平年
> 3. ただし、西暦年が400で割り切れる年は閏年
1 が year % 4 == 0
2 が year % 100 != 0
3 が year % 400 == 0
うるう年は 1 と 2 が両方成立するか、または 3 が成立する場合だから >>184 の式になる
0186185
2015/03/12(木) 11:15:03.60ID:9E3YKRs2うるう年が成立するために必要な条件のことなので
そう読み替えてください
0187デフォルトの名無しさん
2015/03/12(木) 12:32:27.50ID:UwEx4TaEありがとうございます
0188デフォルトの名無しさん
2015/03/12(木) 14:51:20.25ID:T8hzHXTXこれが炎上学習法というやつか‥
サービス問題
浮動小数点数の除算にて事前の零割りチェックは要らない。
それは >>141 に述べたとおり、オーバーフローも含めて事後処理すればいい。
一方、整数の除算においては、事前の零割りチェックは必須だ。
その理由は?
0189デフォルトの名無しさん
2015/03/12(木) 15:47:31.15ID:GBiRKg+Y例1
コンパイルエラーにより実行ファイル作成失敗
double d = 1.0 / 0.0;
例2
実行時エラーによる強制終了
double d, e;
scanf("%lf", &e); /* 0を入力 */
d = 1.0 / e;
例3
問題なし
double d, e;
e = 0.0;
d = 1.0 / e; /* NaN */
0190デフォルトの名無しさん
2015/03/13(金) 02:37:22.40ID:8v0xZffX0191デフォルトの名無しさん
2015/03/13(金) 05:59:36.05ID:z8zfhg7xint *p = &n;
scanf("%d", &n) ? (*p)++, 0;
0192デフォルトの名無しさん
2015/03/13(金) 07:14:41.84ID:zjfSc/AC0193デフォルトの名無しさん
2015/03/13(金) 07:37:29.47ID:vURV2fJ10194デフォルトの名無しさん
2015/03/13(金) 08:38:05.49ID:HV8vSxLa代入も加算も両方書き込みだから、同時は無理
0195デフォルトの名無しさん
2015/03/13(金) 10:29:32.72ID:6q2TkuD1例えば、
scanf("%d",&n++);
みたいな感じで出来たらなと思いまして
>>194
そうですか...
他の入力用の関数使っても不可能なのでしょうか?
0196デフォルトの名無しさん
2015/03/13(金) 10:30:34.51ID:6q2TkuD1そういう方法ですか
ありがとうございます!
ちなみにですが、*pを使わずに処理する方法はありますか?
0197デフォルトの名無しさん
2015/03/13(金) 11:25:15.35ID:R2aIDez5scanf()の結果に条件演算子(a?b:c)を使うのであれば順次演算子(a,b)でも同じ
scanf("%d", &n),n++;
0198デフォルトの名無しさん
2015/03/13(金) 11:38:24.30ID:6q2TkuD1ありがとうございます
0199デフォルトの名無しさん
2015/03/13(金) 12:51:35.77ID:+e2bgrgv3文字か4文字書くのが面倒だから?
0200デフォルトの名無しさん
2015/03/13(金) 13:23:56.72ID:yU2SIesZラズベリーパイでledを光らせるプログラムを組んでますがエラーの対処法が分かりません。
どなたか解決法分かる方お願いします。
...という文字列はどこから来たのでしょうか。
以下コード
#define GPIO 17 17
#define GPIO 25 25
#include <stdio.h>
#include <wiringPi.h>
int main (){
if (wiringPiSetupGpio() == -1){return 1;}
pinMode(GPIO25, OUTPUT);
pinMode(GPIO17, OUTPUT);
int ltika(int m)
{
digitalWrite(GPIO25, 1);
digitalWrite(GPIO17, 1);
delay(m);
digitalWrite(GPIO25, 0);
digitalWrite(GPIO17, 0);
delay(20-m);
}
int ltika(2);
pinMode(GPIO25, INPUT);
pinMode(GPIO17, INPUT);
}
エラーのメッセージ:expected declaration specifiers or '...'before numeric constatnt'
0201デフォルトの名無しさん
2015/03/13(金) 13:31:17.19ID:+e2bgrgvint ltika(2)が関数宣言としておかしいといってる
たぶん関数呼び出ししたいのだろうから、intはいらない
0202デフォルトの名無しさん
2015/03/13(金) 13:33:37.07ID:yU2SIesZ本当にありがとうございます!
もっと長いコードだったのが、どんどん短くしていってそれでもエラーは消えず途方に暮れていたので
本当感謝です
0203デフォルトの名無しさん
2015/03/13(金) 13:49:09.51ID:6q2TkuD1いえ、なんとなくですw
もしできたら何かと便利かと思いまして
0204デフォルトの名無しさん
2015/03/13(金) 13:58:03.18ID:8v0xZffX0205デフォルトの名無しさん
2015/03/13(金) 13:58:46.06ID:8v0xZffX入力された値を4進数に変えて、 偶数の桁全部に1を足して、その数を10進数に戻して出力したいんだけど、ループ回す以外に方法ある?
例えば、
170(10) -> 2222(4) --> 3333(4) -> 255(10)
225(10) -> 3201(4) --> 3311(4) -> 245(10)
みたいな感じで
0206デフォルトの名無しさん
2015/03/13(金) 18:53:41.29ID:u5xBN3qAhttp://codepad.org/o3XY0Mb9
参考書では
double型 :50000.000000
となるはずなんですが
double型 :0
と表示されます
0207デフォルトの名無しさん
2015/03/13(金) 19:22:22.24ID:yzrdUasZ16行目は%.6fの間違いじゃない?
0208205
2015/03/13(金) 22:18:07.18ID:8v0xZffX0209デフォルトの名無しさん
2015/03/14(土) 01:34:19.27ID:z9Ktyrzz4進数は4桁固定?
上位桁が0の場合の扱いは?
例えば、8(10)の場合はどっち?
8(10) -> 0020(4) -> 1121(4) -> 89(10)
8(10) -> 20(4) -> 21(4) -> 9(10)
0210デフォルトの名無しさん
2015/03/14(土) 01:36:11.32ID:f/5VfowWお前PGとしてのセンスが欠けてるわ。
0x55と論理和を取るだけ。
中学生でも解けるだろ。転職した方が良い。
0211デフォルトの名無しさん
2015/03/14(土) 01:47:37.62ID:z9Ktyrzzそのやり方は4進数が4桁固定の場合にしか使えない
0212デフォルトの名無しさん
2015/03/14(土) 01:57:07.81ID:f/5VfowWこっちは、小学生かよ。
塾の先生に聞いてごらん。ゼロは偶数。
0213デフォルトの名無しさん
2015/03/14(土) 02:00:28.49ID:z9Ktyrzz0x555や0x5555、0x1555とか使うのか?
4桁前提でなければマスクビットが決められない
0214デフォルトの名無しさん
2015/03/14(土) 02:12:47.19ID:f/5VfowW質問者が秘密にしてる制約の事など知ったことか。
自分で適切な桁を設定すれば良い。中学生以上なら可能。小学生には無理らしいけど。
0215デフォルトの名無しさん
2015/03/14(土) 02:14:48.23ID:z9Ktyrzz仕様が分からなければ判断できる訳ないだろ
0216デフォルトの名無しさん
2015/03/14(土) 02:25:49.60ID:f/5VfowW質問者がそれを認識した時に解決するのだから、確認など不要。
小学生には難しいかな。
0217デフォルトの名無しさん
2015/03/14(土) 02:26:47.41ID:CKcS8mmwどんまい
0218デフォルトの名無しさん
2015/03/14(土) 02:31:28.50ID:z9KtyrzzPGとしてのセンス云々よりもっと基本的な何かが欠けてるわ
0219デフォルトの名無しさん
2015/03/14(土) 02:41:48.78ID:rqOXrwlQは綺麗じゃないな
ビット演算だけ組み合わせて詰めて一行で終わる変態的な方法はないのかね
0220デフォルトの名無しさん
2015/03/14(土) 07:37:34.49ID:dQxdhP9d4桁固定じゃない(1〜8桁の可変)
上位桁が0なら、0でない一番上の桁のまで処理
8(10)なら後者
0221デフォルトの名無しさん
2015/03/14(土) 07:41:17.50ID:dQxdhP9d0222デフォルトの名無しさん
2015/03/14(土) 08:11:14.42ID:CKcS8mmw0 -> 00 -> 01
1 -> 01 -> 01
2 -> 10 -> 11
3 -> 11 -> 11
2bit毎の0b01論理和でしょ
てか、その程度なら0x100 x 2 バイトサイズなテーブルを用意するのが
単純かつ最速
0223デフォルトの名無しさん
2015/03/14(土) 08:17:26.34ID:zKu26jV3>上位桁が0なら、0でない一番上の桁のまで処理
という条件があるのなら、ループを回した方がシンプルかもね。
その上で速度的な問題があれば、展開してループを外してみる程度。
0224デフォルトの名無しさん
2015/03/14(土) 08:23:25.68ID:dQxdhP9dサンクス!
0225デフォルトの名無しさん
2015/03/14(土) 08:24:55.06ID:dQxdhP9d0226デフォルトの名無しさん
2015/03/14(土) 08:35:47.31ID:zKu26jV3桁数の制限が無い場合、任意精度演算とか多倍長演算かな。
詳しくは Google 先生に聞いてみよう。
0227デフォルトの名無しさん
2015/03/14(土) 10:30:01.70ID:dQxdhP9dありがと!
0228デフォルトの名無しさん
2015/03/14(土) 15:24:17.00ID:QMCtKmlhヌル文字ってどうなる?
0229デフォルトの名無しさん
2015/03/14(土) 15:26:57.57ID:cLXneCYu0230デフォルトの名無しさん
2015/03/14(土) 15:29:29.19ID:M1KE6Bug何だか雰囲気がQz臭い書き込みだな
0231デフォルトの名無しさん
2015/03/14(土) 15:43:39.87ID:8spH3MOz0232デフォルトの名無しさん
2015/03/14(土) 18:12:14.21ID:cLXneCYuint main()
{
char a[3]= {"abc"};
char *p;
for (p = a; p <= a+3; p++)
printf("[%d]", *p);
return 0;
}
0233デフォルトの名無しさん
2015/03/14(土) 18:15:05.78ID:cLXneCYu[97][98][99][-68
vc2005
[97][98][99][0]
0234デフォルトの名無しさん
2015/03/14(土) 21:47:12.97ID:U+6JHOgw{}は何の為に有るのだ?
0235デフォルトの名無しさん
2015/03/14(土) 21:58:57.75ID:iq+gVAmlこれって、
gcc: char a[3] = {'a', 'b', 'c'};
vc2005: char a[3] = "abc";
ってこと?
0236デフォルトの名無しさん
2015/03/14(土) 22:35:24.81ID:y/4YiFF4VCの場合、偶然か何らかの都合かで配列の直後に空きがあったからヌルが格納されただけ。
(全く別の数値0x00データの可能性もあるけど)
gccの場合は、配列の直後に別変数が割り当てられてヌルが上書きされてる。
(コードからchar型ポインタの一部の可能性が高い)
どちらにせよ配列のオーバフロー時の動作は保証されない。
0237デフォルトの名無しさん
2015/03/14(土) 22:36:09.78ID:cLXneCYuたぶんVCの奴はパディングが入っているのではないかな
0238デフォルトの名無しさん
2015/03/14(土) 23:20:14.17ID:f/5VfowWaはスタック上に置かれる。
a[3]としてアクセスしたロケーションにあったものが、
それぞれ-68,0だっただけの事。
0239デフォルトの名無しさん
2015/03/14(土) 23:22:41.15ID:wcL59cGU昔、VB6アプリ用のDLL作ってハマった覚えがあるよ?(´・ω・`)
0240デフォルトの名無しさん
2015/03/14(土) 23:28:50.41ID:U+6JHOgw{ }の意味教えてくれよ
0241デフォルトの名無しさん
2015/03/14(土) 23:49:00.01ID:9sIwwC7Mお前は話題についてこれないんだから無理して首突っ込むな。
スタック上に置かれるとか皆わかった上での話だ、アホウ。
0242デフォルトの名無しさん
2015/03/14(土) 23:52:50.53ID:U+6JHOgw0243デフォルトの名無しさん
2015/03/15(日) 00:13:34.16ID:kJqM+4Ch配列の初期化は、次のようにして行います。
型名 配列名[要素数]={0番の数値,1番の数値,2番の数値,・・・};
{}で囲んだ中に順番に,で区切って数値を並べます。
全てを指定する必要はないので、数値の個数は、配列の要素数以下にします。
配列の要素数よりも少ない場合、残りには全て0が代入されます。
char型の配列で文字列を取り扱えます。
しかし、上記の配列を初期化する方法は非常に面倒です。
いちいち1文字ずつ区切って書かなければなりません。
C言語では、もっと直感的に文字列を初期化出来る方法があります。
今まで文字列を表す時には""で囲んできましたが、これを使う方法です。
なお、"" で囲んだ文字列を特に、文字列リテラルと呼ぶことがあります。
文字列リテラルを使うと、簡単に文字列の初期化が出来ます。
つまり、{"abc"}をコンパイラは{'a','b','c'}と解釈しますから、前者の場合の
{}には特に意味がなくなりますが、配列を初期化する記述としては問題
ありません。
0244デフォルトの名無しさん
2015/03/15(日) 00:23:09.46ID:J5ZoTwT2subl $32, %esp
movw $25185, 25(%esp)
movb $99, 27(%esp)
leal 25(%esp), %eax
movl %eax, 28(%esp)
となっていて、本題とは関係のないけど "ab" をまとめて word で渡してるのな。
'a':97, 'b':98, 25185 == (98<<8) + 97
"leal .." と "movl ..." から推測して、for loop 内の printf() でポインタ(*p)
そのものの値(アドレス値)を見てみると、
for (p = a; p <= a+3; p++) {
printf("[%d] %hhd\n", *p, (int)p & 0x000000ff);
}
[97] 41
[98] 42
[99] 43
[44] 44
となっていて、>>236 の「コードからchar型ポインタの一部の可能性が高い」
の通りとなっている。vc2005は持っていないから分からん。
0245デフォルトの名無しさん
2015/03/15(日) 00:23:51.76ID:6p2wtnBOに書いてあるとおり
{ } は、1文字ずつ、'a' のように、
char型で初期化する
>gcc: char a[3] = {'a', 'b', 'c'};
この後に、'\0'(NUL文字)は無い
>vc2005: char a[3] = "abc";
char a[4] = "abc";
この後に、'\0'(NUL文字)があるので、
配列のサイズは、文字列 + 1 にする
0246デフォルトの名無しさん
2015/03/15(日) 00:33:13.13ID:ZiZ/0VZw何かの文献からの引用なのか、自分の言葉なのかよくわからないけど
{"abc"}は{'a', 'b', 'c', '\0'}と解釈される
0247デフォルトの名無しさん
2015/03/15(日) 00:40:59.72ID:oAj/AjeD念のために一応。
char s[] = "abc", t[3] = "abc";
は次の宣言と同じです。
char s[] = {'a', 'b', 'c', '\0'} , t[3] = {'a', 'b', 'c' };
ttp://msdn.microsoft.com/ja-jp/library/7w7xccx8.aspx
0248デフォルトの名無しさん
2015/03/15(日) 00:52:05.98ID:J5ZoTwT2なるほど、gcc で
char s[3] = {"abc"};
char s[4] = {"abc"};
の違いを見てたんだけど、そういうことだったのね。
0249デフォルトの名無しさん
2015/03/15(日) 01:06:28.26ID:oAj/AjeD中括弧の記述を省略できる場合がある。
省略しただけなので意味は同じ。
0250デフォルトの名無しさん
2015/03/15(日) 01:11:21.27ID:Jqzc46Ub知らなかった (・∀・)
0251デフォルトの名無しさん
2015/03/15(日) 18:38:48.59ID:qPIG10Kpなんで引数の型とか数を自由に決めれるんだ?
ソース見てもどうなってんのかわからなかった
0252デフォルトの名無しさん
2015/03/15(日) 19:10:37.68ID:6pbsqEWY■ このスレッドは過去ログ倉庫に格納されています