[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 16:03 / Filesize : 231 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレを勃てるまでもないC/C++の質問はここで 12



1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/
スレを勃てるまでもないC/C++の質問はここで 10
pc12.2ch.net/test/read.cgi/tech/1242300936/
スレを勃てるまでもないC/C++の質問はここで 11
pc12.2ch.net/test/read.cgi/tech/1245059383/

720 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 18:24:52 ]
>>719
715です。
これは確かにどちらなのかによって全然違いますね。

721 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 18:37:59 ]
>>720
というかマクロで作ったら未定義の動作だろ。
*未定義の動作=インターネットのニュースグループ、comp.std.cやcomp.lang.cでは、未定義のコードを実行した結果「鼻から悪魔が飛び出しても仕様に反しない」というjoke が流行したことがありました。今でもたまにこのような表現を見ることがあります。
初級C言語Q&A(7)
ttp://www.st.rim.or.jp/~phinloda/cqa/cqa7.html


722 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:36:29 ]
数字を四捨五入するにはどうすればいいんでしょうか?


723 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:38:06 ]
JIS, ISO式四捨五入なら専用の関数がいる

724 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:40:44 ]
四捨五入の意味を辞書で調べて、その通りにすればいいと思います

725 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:51:54 ]
CをまともにやらずにC++をやろうとするのは無謀?
それなりに努力はするつもりなんだが、どうなんですか?

726 名前:デフォルトの名無しさん [2009/09/02(水) 01:13:18 ]
別にいいと思うよ。
Cでポインタを理解しておけば、C++でポインタを勉強する必要がなくなるとかそんな程度だし。

727 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 01:14:01 ]
先にC++に慣れ切ってしまうと、後からではCではプログラムを組めなくなるんじゃないかという危惧がある
ゆとり教育とかいうと聞こえが悪いけど、なんかそんな感じ
でもいまどきC++が使えない環境ってのもそうそうないだろうとも思うわけで、
まぁ別にいいんじゃないか
無謀というほどのことはない
むしろSTLとか便利なライブラリのおかげでポインタをやたら使わずに済む分つまづくポイントは減ってるかもしんない

728 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 01:30:28 ]
>>726 >>727
返答ありがとうございます



729 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 02:15:29 ]
>>725
いやいきなりC++をやる事をオススメする
禿もそう言っているし

730 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 06:50:19 ]
>>725
> それなりに努力はするつもりなんだが
この覚悟があるならC++で良いと思うよ。


731 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 06:55:07 ]
Accelerated C++やC++プライマーを使うと良いでしょう。

732 名前:デフォルトの名無しさん [2009/09/02(水) 12:33:11 ]
ビジュアルCとビジュアルCじゃないCはどの程度の違いがありますか?

733 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:04:47 ]
「ビジュアルCじゃないC」 とかじゃなくて具体的な製品名をあげてくれ

734 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:35:26 ]
try catchで配列[]の添え字範囲外の例外をキャッチ出来る?
メモリのアクセス違反のキャッチと言うべきかな

735 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:42:33 ]
>>734
これ?
msdn.microsoft.com/ja-jp/library/5z4bw5h5(VS.80).aspx

736 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:50:10 ]
>>735
それっぽいけど
エラーの種類の判別方法がわからんね
調べてみます

737 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 14:16:12 ]
>>733
ずびばせん……
例えばボーランド?というやつではどういう違いがありますか?

738 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:14:59 ]
Borland C++Builder と Borland C++Compiler の2種類があるけど・・・

Borland C++Builder と Visual C++ はまったく異なる。
Borland C++Builder は Visual Basic みたいに部品ポトペタで開発していくスタイル。
Visual C++ はエディタでごりごりコードを書く開発スタイル。

Borland C++Compiler と Visual C++ はごりごりコードを書く点では変わらないけれど、
Borland C++Compiler には開発環境が付いておらず、
普通のテキストエディタ(メモ帳とか)でコードを書き、コマンドラインからコンパイラを使うことになる。
(いちおうベクターあたりを探せばフリーの開発環境がいくつか見つかる)
Visual C++ には豪華な開発環境が付いていて、ボタン一発でコンパイルでき、デバッガも組み込まれている。

ちなみにボーランド(の開発製品群)はエンバカデロに買収されました。
なので、たぶん Embacadero C++Builder とか呼ぶべき。



739 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:18:25 ]
>>738
で、そのコードはCなの?

740 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:22:47 ]
そもそも Visual C というのは無いから
Visual C++ のことだろうと推測した (C#のことだったらすまんね)
説明したのは書いてるとおり Visual C++ とボーランドなんとかというやつの比較

741 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:07:20 ]
ははあ……なるほど
Cプラが使えるのには違いはないんですね!?
ありがとうございました!

742 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 21:45:07 ]
hoge f(int a, int b, int c)
{
return hoge(a, b, c);
}

hoge h(f(1, 2, 3));

これだとコピーコンストラクタが無視されて、あたかも
hoge h(1, 2, 3);
のような挙動になるのは仕様で決められてる?
それともたまたまコンパイラの中の人が親切だっただけで?

743 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 21:57:59 ]
>>742 仕様で許可されている。返り血最適化RVOという。
許可されているだけなので最適化されるかどうかは中の人次第。



744 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 22:08:24 ]
下記の書についてです。
  (1).ANSI C/C++辞典(ttp://www.amazon.co.jp/exec/obidos/ASIN/4320027973/)
  (2).新ANSI C言語辞典(ttp://www.amazon.co.jp/exec/obidos/ASIN/4774104329/)

CだけでなくC++についても調べたいので(1)は買う予定でいます。
(2)は色々と評判に上がることが多いようなので迷ってるのですが、
・ (2)は(1)と重複している部分が結構あったりするのでしょうか。
・ (2)ではC++についてはまったく触れられていないのでしょうか。
・ 両方とも割と昔の本ですが、仕様の変更などで現在と異なる点はあるのでしょうか。
ご存知の方がいましたら教えていただきたいです。

745 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 22:29:39 ]
C++は1998と2003年に改正されてるけど1996年の本でいいの?
いいんだ。あ、そう。

746 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 22:54:35 ]
新のつかないほうのANSI C言語辞典を持っているけど、これは今でも使える。
まあ古い本なので、ワイド文字関係と誰も使っていないC99に関する事柄が抜け落ちているけど。
だから、新のほうもおそらくおすすめできると自分は思っている。

ANSI C/C++辞典は分からない。初版は図書館で見たことあるけど、これ3版だからノーコメント。
個人的には、C++の内容を辞典的に網羅するにはページ数が少なすぎるだろうというのが気掛かり。
そのアマゾンによれば590ページらしいが、C言語辞典ですら500ページ近くある。
(初版でもC言語辞典より小さな字で詰めて配置してあったとはいえ)

747 名前:744 mailto:sage [2009/09/03(木) 00:22:24 ]
情報ありがとうございます
最近の本も探してみたのですが、評価が芳しくないものやパッとしないものが多くて…
古い本なので逆に図書館にあるかも知れませんね
近所の図書館をあたってみて、もしあれば中身を確認してみようと思います


748 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 02:00:47 ]
今まで文字列の取り扱いは char * を使ってたのですが、そろそろ汎用性を考えたコードも
意識して書かないといけないかなとか思い始めてます。
ところがなんか TCHAR だの wchar_t だの LPTCSTR だのと色々とあって、どういう時に
どれを使えばいいというのが判りません

どういう考えで、どういう型を使うのが一般的なのでしょうか



749 名前:デフォルトの名無しさん [2009/09/03(木) 02:38:19 ]
char*でおk。

750 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 02:47:38 ]
蒸し返すようだけどGET_SET_ACCESSORって要するに
「今は何もしない素通し処理にしておくけど、将来的に別の処理が入った時に
クライアントコードの書き換えが必要になるとまずいからとりあえずアクセサ
になってますよ」って意味じゃね?
必要になったら普通に書き直せばいいし、何もしてないです、ってのが一目で
分かるし、悪くないマクロだと思うが。
まぁ俺はマクロ嫌いだから極力使わないんで、これも使わないけど。

751 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 04:09:28 ]
・いつか処理が変わるかもしれないからアクセサは常に作るべき
・次のフェーズで変更されることが分かっているからアクセサを作るべき
・必要になってから作るべき

という感じで意見がいつも割れるんだよ

752 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 04:24:39 ]
ハイ!先生
「メンバは原則 public しといてゲッタセッタ必要になったら private に異動で十分」派です。

753 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 05:40:12 ]
それ呼び出し側のコードが変わるじゃん

754 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 05:51:34 ]
で?

755 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 05:54:39 ]
>>752
それだとメンバ変数名を変えたくなっても変えられないな。
Get/Setでポリモーフィズムが使えないな。

>>750
単純な代入とかだったらGET_SET_ACCESSORでいいと思うし、
頑なに拒否する人を見て何が悪いのかと思ってたけど、
デバッガで見れないって言うのがね、ちょっと嫌かな。

756 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 06:26:37 ]
そうやってアクセサとメンバ名の乖離が起こるわけですね。

ポリモーフィズムが使えないという点は全く理解できないので追加説明をしていただけると助かります。

757 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 06:46:09 ]
>>753
変わって何か問題ある?

758 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 07:12:09 ]
別に問題ないよ



759 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 10:22:49 ]
書き換えるのが面倒
プロジェクト内の全ファイルから問題の箇所を一発で全部置換できるエディタを持ってるのなら気にする必要はない

760 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:47:14 ]
wrproperty使ったほうがクライアントがすっきりうんこ

761 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:06:03 ]
汎用的なライブラリでそんな作業しようと思うとぞっとする。
変数書き換えのタイミングも追いづらいし。

762 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:10:09 ]
a* [2]
a[0] = new b[2]
これって可能?アクセス方法ってどうやるの?

763 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:31:20 ]
不可能

764 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 17:50:35 ]
プラスとマイナスをひっくりかえす関数ってありますか?
例えば5なら-5に、-9なら9に変えてくれる関数です

765 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 17:55:16 ]
関数にするまでもない
a = -b;
とかで十分

766 名前:764 mailto:sage [2009/09/03(木) 18:00:34 ]
本当だ、できました
ご親切にありがとうございました

767 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 19:31:38 ]
1.f←これってfloatとして扱うってことですよね?

いま呼んでいる本に

double r = srcR * srcA + ( 1.f - srcA ) * dstR;

というコードがあるんですが
「1.0」(double型)じゃなくて「1.f」(float型)をつかう意味ってありますか?
srcR、srcA、dstR、はどれもdouble型です。


768 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 19:46:22 ]
>>767 ありません。



769 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:02:16 ]
もともと全部floatで書いていたコードを何かの理由でdoubleに直したときに
そこだけ修正し忘れた、とか

770 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:06:08 ]
>>768-769
わざわざfloatにしてるから
何かしらメリットがあると思ったんですが
何もないんですね。
ありがとうございます。

771 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:19:58 ]
>>767
何か勘違いしてそうだから念のためにいっておくと、
 double の 1.0 は 1. と書くこともできる
 float の 1.0f は 1.f と書くこともできる

772 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:23:02 ]
shared_ptrに確保されたインスタンスがあったとして
そいつのweak_ptrを返すメンバ関数とかってどうやって実装してるの?

773 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:26:22 ]
>>756
変数がpublicだったらアクセサを経由した取得にならないからだろ。

774 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:58:14 ]
>>771
0付けなくても良かったんですね
ありがとうございます

775 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 21:13:34 ]
>>772
shared_ptrとweak_ptrはインスタンスを直接保持するのではなく、インスタンスを管理するオブジェクトを経由して保持している。
weak_ptrは管理オブジェクトを参照すればインスタンスが有効かどうかが分かる。



776 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:08:14 ]
wktk_ptr
kwsk_ptr
sneg_ptr

777 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:08:39 ]
いや、なんていうか
sp->getThisWeakPtr();
みたいなことしたいんですけど無理なんですかね?

778 名前:777 mailto:sage [2009/09/03(木) 22:46:10 ]
あ、自己解決したわ



779 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:32:43 ]
使いたくもない敬語を無理に使ってるってことがよく分かる

780 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 02:37:31 ]
?

781 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 13:18:09 ]
1: char a[20];
2: char a[20]={0};
3: char *a = new char[20];
これらのうちでは
動作が軽い順で言うとどうなりますでしょうか?


782 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 13:40:41 ]
1が最も軽く、3が恐らく最も重い

783 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:00:22 ]
3は
delete[]a;もセットで考えないといけない。

784 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:18:13 ]
>>782
なるほど。
1と2では、
初期化する場合としない場合とでやはり速度差があるのですね。

>>783
ありがとうございます。そうすると3は重そうですね。

ありがとうございました。

785 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:20:44 ]
1.のコストは0なのだ。


786 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 15:20:48 ]
C++のisoが定めた規格が
無償で(英語でもいいので)見られる
サイトを教えていただけますでしょうか?


787 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 15:39:02 ]
C++のqueueについてなんですが、
queueで作ったデータ列を配列みたいに見るってできないんでしょうか?
front()で頭を見る以外の方法が分かりません…

788 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:00:37 ]
>>787配列のように扱えないのがstd::queueのメリット。
配列のように使えるキューが欲しいならstd::dequeを使う。




789 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:02:12 ]
>>786
iso 14882 2003 pdf - Google Search
www.google.com/search?name=f&hl=en&q=iso+14882+2003+pdf

790 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:04:58 ]
>786
C++についてはC言語ほど詳しいわけではないけど
ドラフトなら無償で手に入れることができたはずだったんだけど、なんか本家死亡中?
規格書の正式名称をどうたらこうたらで手に入れることができる

791 名前:786 mailto:sage [2009/09/04(金) 16:08:13 ]
>>789-790
丁寧にありがとうございました。
助かりました。

792 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:14:52 ]
>>788
分かりました。どうもです

793 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:11:55 ]
全然別人ですが、
C99の規格は英語でいいのでどこかで手に入りませんか?

ググろうにも何でググればいいのか悩みます。

794 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:17:06 ]
JISの規格票じゃだめなのか?

795 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:34:38 ]
JISの規格は閲覧するのにとても苦労するので。
(標準のpdfリーダがadobeじゃ無いためです。)

796 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:50:34 ]
n1124.pdfとか

797 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:55:47 ]
>796
それはC0x Draft, N1124, 6 May 2005だな

798 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:57:26 ]
どの版がいいの



799 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:09:13 ]
ええと、一番普遍的な版がいいのですが。
そんな最先端のプログラミング技法には深入りするつもりもないので。


800 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:27:02 ]
テンプラメタプログラミングなんてやってなんか得したことあった?

801 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:41:44 ]
知的好奇心が満たされるw

802 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:49:15 ]
>>800 似たような重複コードを書かなくてすむ用になる。




803 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 19:05:32 ]
(プラシーボで)実行速度が速くなった

804 名前:デフォルトの名無しさん [2009/09/04(金) 19:48:32 ]
C++でスレッドをやってみたら思いのほか簡単にできた。
それでも複数の値渡しはいちいち構造体を定義しないといけないなんてどうしてこんな回りくどいやり方でないといけないのか
もっとすっきりしたやり方考えろよ

805 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 19:50:41 ]
自分で好きなように作ればいいじゃないか?

806 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:25:36 ]
>>804
スレッド開始時の関数に引数を渡すときのことを言っているなら、boost::threadはどう?
bindと組み合わせれば何引数でもいけるよ。

もちろん、それ以外のAPIでもbind使えるようにできるけど。

807 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:34:38 ]
テンプレートメタプログラミングは定数のコレクションを生成するとき便利だよ。
その数が万単位になると劇的に速度が変わる。

808 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:37:14 ]
テンプレートメタプログラミングは
天才がライブラリを作るときに便利だと思うよ。

凡人が挑戦すると死亡するだけ。



809 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 05:58:07 ]
ちょっとやってみたけどコードがぐちょんぐちょんになった

810 名前:デフォルトの名無しさん [2009/09/05(土) 15:50:47 ]
C言語における、ダブルクォートで囲んだ文字列と、
シングルクォートで囲んだ文字列は、どういう違いがあるのでしょうか?

明確に違って、ダブルクォートで囲んだほうは文字列の最後に何か追加されたような気がする、まではおぼえているのですが…

どなたかご教授いただけませんでしょうか

811 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:52:34 ]
>>810
シングルクォートで囲んだ文字列
の意味が分からん。

そんなもの存在しない。


812 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:56:35 ]
>>811
ごめんなさい
文字列という言葉ではおかしかったかもしれません
っていうか、シングルクォートで囲んだものは文字列ではなくて、文字、でしたっけ

"aaa" == 'aaa' ではないことは覚えているのですが
あえて
"aaa"をあえてシングルクォートで囲んで表現したらどう表記するのでしょう、といった質問です

813 名前:811 mailto:sage [2009/09/05(土) 15:58:56 ]
>>812
"aaa" -> 言語仕様として存在する
'aaa' -> 言語仕様として存在しない

というこれ以上ないほどの違いがあるぞ。



814 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:59:51 ]
つーか、どんなC使ってるのか知らんが、
'aaa'
はCでは出来ないよ。

815 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:59:52 ]
{ 'a', 'a', 'a', '\0' }
こんな感じか?

816 名前:811 mailto:sage [2009/09/05(土) 16:01:13 ]
それとも
"aaa" -> C/C++ではcharないしconst char型の配列型で、その数は4である。(終端にヌル文字が付く。)
"a" -> C/C++ではcharないしconst char型の配列型で、その数は2である。(終端にヌル文字が付く。)
'a' -> const char型の文字型変数。
であることを言いたいのか?



817 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 16:01:55 ]
char *p = malloc(3);
p[0] = p[1] = p[2] = 'a';

818 名前:810 mailto:sage [2009/09/05(土) 16:02:24 ]
過去ログを読み直していたらこんなコードにぶつかったので質問した次第です
文字とか文字列とかそういう問題で捉えたのがいけなかったんですかね

624 :デフォルトの名無しさん[sage]:2008/01/30(水) 00:58:29
#include <iostream>

int main(void)
{
    const int max_str = 50 + 1;
    char str1[max_str], str2[max_str];    
    std::cout << "数値a入力>";
    std::cin >> str1;
    std::cout << "数値b入力>";
    std::cin >> str2;

    int len1, len2;
    for( len1 = 0; len1 < max_str; ++len1 ){
        if( str1[len1] == '\0' )
            break;
    }
    for( len2 = 0; len2 < max_str; ++len2 ){
        if( str2[len2] == '\0' )
            break;
    }



819 名前:810 mailto:sage [2009/09/05(土) 16:05:44 ]
>>816
ヌル文字!

文字数!

それです、私が思い出したかったと思われるキーワードはそれです!
あとは自力で調べられそうです
ありがとうございましたー


820 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 16:07:04 ]
たぶんシングルクォートの文字列は
char foo[] = {'f', 'o', 'o', '\0'}; /* '\0'は'\000'または'\x00'などと同じnull character(JISではNULと表記される)を表す */
だと思う、シングルクォートは文字定数を表記するときによく使われる、そのほかの目的でも使うことはある

ダブルクォートの例は
char bar[] = "bar"; /* {"baz"};とかくこともできる */
char *baz = "baz";
ダブルクォートで囲んだ場合、文字列リテラル(文字列定数)と呼ばれる
この場合、コンパイラは気を利かせてnull characterを付けてくれる
したがって、sizeof(bar)は4となる

しかしながら
char hog[3] = "hog";
の場合、コンパイラは気を利かせてnull characterを追加しない、つまり
char hog[] = {'h', 'o', 'g'}; /* char hog[3] でもよい*/
とした場合と同じ結果となる

と長々書いているうちに解決していたでござるの巻






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef