1 名前:デフォルトの名無しさん [2007/05/08(火) 19:39:26 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 11 pc11.2ch.net/test/read.cgi/tech/1176800483/ 過去スレ Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/ Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/ 関連スレ C/C++の宿題を片付けます 86代目 pc11.2ch.net/test/read.cgi/tech/1176996941/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/l50 はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/l50 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
641 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:01:38 ] んで、みんな >>605 をそれぞれやってみた? コンパイルエラーだの警告だの出たよね?だから何?としか言いようがないんすけど・・・ >>605 は何をしたかったか、明確なレスを求む。
642 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:08:02 ] >>641 やってないし、やる気もない
643 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:10:06 ] >>642 やってないお前に聞いてないけど?だからそういうレスするなって。 NULLポインタのアドレスを表示するコンパイルもしてないくせに。
644 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:12:55 ] >>643 >みんな >それぞれやってみた? やった人間だけレスしろというなら最初からそう書け お前は抜けてるんだよいろいろと
645 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:14:08 ] さっきっから何かと噛み付いてこないと気がすまない基地外がいるんだな。 わかりやすいね、そういう人間って。このスレには初心者が集まって 自分より知識のないやつが多いと思い込んで、浅はかな知識でレスしちゃっているんだろうけど それが仇となってボロだしまくりで恥をかく奴。
646 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:14:17 ] >>643 そろそろ消えてください
647 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:22 ] >>645 いちいちレスするな うざい
648 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:36 ] >>644 はぁ?抜けているのはお前。しかもお前には脳みそが抜けているようだ。 日本語がわからない?何他人に指図してんだよ?こっちはやれよとは言ってないが やってみた?とは聞いたが?何これ?何俺に噛み付いてんの?さっきから基地外だよなお前はw 抜けているのはお前の脳みそ、な?理解しろ。 > 最初からそう書け 何命令してファビョってんだよ?わけのわかんねーソースを書いたNULLポインタ厨w
649 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:44 ] ん〜と、やってみてだから何?という人に早くレスしてあげてください。 さっさとね。
650 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:16:54 ] 何言ってもこういう自分中心人間には効かないんだろうな ある意味うらやましい
651 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:17:11 ] >>647 =>>646 =>>644 初心者叩きするのに失敗して赤っ恥ソースを出した厨房必死だなwwwww 何そこまで必死こいてんの?あっ、あのソースをコンパイルされて、自分がボロを出して バカだということを露呈されるのが怖いんだぁ〜〜〜〜(^ー^)b コンパイルした奴らにはあほだということがバレて大恥かいたもんなぁ〜〜〜君ってw
652 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:18:44 ] >>650 そうだね、わけのわからねーソースを出してreturn NULLしちゃっているぬるい奴って >>598 >>605 < こっ、こここ、これは・・・すごい大ヒントだ!こいつがバカだってことがわかる大ヒントw
653 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:20:42 ] >>605 ほらほら早く説明しろよ。初心者さんがコンパイルして待ってまつよ。 ほら、涙目を拭いてさ。
654 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:20:46 ] こうゆうスレには 群がってくるんだな 有る意味新鮮
655 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:21:01 ] >>590 だけコンパイルできない(しょぼい環境)を使っていることがバレバレ もしかして、OSはMS-DOSでつか?
656 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:22:24 ] 608 名前:せんしぇ〜 ◆cNsKLREitk 投稿日:2007/05/14(月) 19:01:47 はい。 コンパイルのはじき方が理解できましたか? ↑しかもこれがあのヒントの答えだろ?だから何?コンパイルエラーを誘うなら 別にreturn NULLじゃなくても通らないソースを書けばおkだろ? NULLの取り扱いについてなんら説明になってないから。
657 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:05 ] >>631 以前他のスレで似たような質問があってその回答だけどどうぞ。 pc11.2ch.net/test/read.cgi/tech/1175949937/539
658 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:31 ] オレ、このスレのこと一生忘れない
659 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:34 ] しつけ〜
660 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:30:26 ] ってか俺も言っててわけわからなくなったw return NULL;だけを持ち出したらそれはそれで問題とならないが あれがその前の流れからして何のヒントなのか?それが知りたいw
661 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:35:07 ] おわった?
662 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:37:58 ] ヒント #include <stdio.h> int main(void){ int x=NULL; printf("%d \n",x); return 0; } さぁ、int型のxに代入された値はなんだった?俺んとこは0。 ただ、これはNULLポインタとは話は別なんで、あしからず。
663 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:39:12 ] 環境依存
664 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:41:07 ] さて、もう一つ、大大だーーーーいヒントでピントを与えちゃよ。 次は文字データとしてNULLを指定しちゃうよ。俺んとこは空文字でコードは0が入った。 #include <stdio.h> int main(void){ char x=NULL; printf("%c %d \n",x,x); return 0; }
665 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:42:57 ] そう、何か値(データ)として与えるのと、ポインタに対して与えるのとでは ぜんぜん違うんですねぇ〜。これならわかるでしょ。NULLそのものが何なのか。 え?こんな説明じゃ不十分でヌルい?まぁ、後は使い方を適切にしてやってくれ。 ポインタにNULLを与えた場合、何も示すアドレスがないってことには変わりはないさ。
666 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:43:46 ] >>662 これ、時々偉そうに「環境依存」だなんていう奴がいたりするけど 実際に0が出ない環境を見たことあるのか?
667 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:50:12 ] >>665 まずは、お前のレスがどれか教えてくれ
668 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:56:55 ] >>667 そうやって相手をさぐろうとするだろ?だから気持ち悪いって思われるんだよ。 >>662 が本日の最初だが?だから何だ?って言われることをお前は言うから 日頃周りから「なんだこいつ?気持ち悪い」って思われてんだよ。 いいたいことがあるなら言えよ、相手次第でいえるとかやっているから お前は弱者を見つけては相手を叩く性格になっちまったんだろ? 自分が筋の通る説明ができないなら黙ってた方が良いぞ。 ちなみに、&xにして%pでポインタのアドレスを確認すると、 中にNULLで与えた値は入っているが、ちゃんとアドレスは割振られているから。確認してみろ。
669 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:57:46 ] >>535 プログラムよりアルゴリズムの方が(数学が)難しかった #include<stdio.h> int main(void){ int x, tmp, left, ans, digit_align; printf("正整数を入力してください > "); scanf("%d", &x); if(x<0){printf("\nError:正整数を入力してください\n");return 1;} for(digit_align=1;x/digit_align>=100;digit_align*=100); left=x/digit_align; ans=0; while(left>0 || digit_align>0){ for(tmp=9;tmp>0;tmp--) if((ans*20+tmp)*tmp<=left) break; if((ans*20+tmp)*tmp<0) break; // overflow? printf("%d", tmp); if(digit_align==1) printf("."); digit_align/=100; if(digit_align>0) left=(left-(ans*20+tmp)*tmp)*100+(x/digit_align)%100; else left=(left-(ans*20+tmp)*tmp)*100; ans=ans*10+tmp; } printf("\n"); return 0; }
670 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:00:50 ] ポインタに対してと値との違いがわからないならプログラムなんてやめとけ。 #include <stdio.h> int main(void){ char x=NULL,*xn=NULL; int y=NULL,*yn=NULL; printf("char x=NULL : %p -%c- \nchar *xn=NULL : %p \n",&x,x,xn); printf("int y=NULL : %p -%d- \nint *yn=NULL : %p",&y,y,yn); return 0; }
671 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:00:51 ] #include <stdio.h> void main(void) { printf("てすつ"); int a; a=NULL; return a; }
672 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:04:23 ] >>668 被害妄想激し過ぎだろ… 普通に流れが混乱して誰が誰か分からなかっただけなんだが、 まあいいや
673 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:06:10 ] >>669 ありがとうございました 助かりました 他のアホどもとは格が違いますね
674 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:06:58 ] >>672 うざい。何が言いたいかはっきりしろ。相手がどうとか関係なしに NULLがどういうことか?の話で説明する相手次第で事実関係を捻じ曲げたり おかしいと自分が思ったことを叩きつけるのはどうかと。言いたいことがあるなら言え。 すでにソースを提示して証明されてんだろ。ポインタとNULL(データ)を与えるのとはどういことかについて。 理解できないのにこんなスレで無知な初心者相手にいい加減なレスをしているのか貴様は?
675 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:11:02 ] >>672 相手にしないほうがいいよ さっきだって人違いって言ってるのにわかろうとしないし といっても擁護乙って言われるだけだけど 自分に対する批判は>>605 だと思ってるから ちなみに>>662 が本日の最初って言うのはうそだから
676 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:12:14 ] >>673 訂正 先頭に #include<limits.h> を追加 if((ans*20+tmp)*tmp<0) break; // overflow? ↓ if(ans>=(INT_MAX-81)/180) break; //overflow?
677 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:13:21 ] >>675 ですね すみません
678 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:21:10 ] ぬるぽを代入するなら#define NULLPO 0にするか普通に0使えって事ですか?
679 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:21:55 ] >>631 マイコン等を使う組込系では、Cしか高級言語の選択肢がない (ほかは低級なアセンブリ言語)という場合も多い。
680 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:23:58 ] >>678 NULLを代入したいのならNULLと書けばいいだろうガッ
681 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:24:08 ] >>666 「NULLが(void*)0と定義されていてコンパイルエラーになる」という可能性もある。 >>673 次から宿題スレ行け C/C++の宿題を片付けます 87代目 pc11.2ch.net/test/read.cgi/tech/1179025919/l50
682 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:25:22 ] >>669 ここを宿題スレにするつもりか?
683 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:28:14 ] C FAQ の事も時々でいいから思い出してあげてください。 www.kouno.jp/home/c_faq/c5.html#0
684 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:32:59 ] >>681 んー・・・ 基本的に「代入したらいくつになるの?」って話だから、 代入ぐらいさせてくれ(っていうか初期化だな。こりゃ)。 int x=(int)NULL; で x が 0 で初期化されない環境があるかないか、という事で。
685 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:42:51 ] あのさ お前らって「Cパズル」ってやったこと無いだろw
686 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:48:31 ] ないお^^
687 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:52:39 ] >>684 C FAQから www.kouno.jp/home/c_faq/c5.html#17 たぶんこうこうところなら(int)NULLは0にならないのだろう
688 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:15:24 ] >>687 >たぶんこうこうところなら(int)NULLは0にならないのだろう www.kouno.jp/home/c_faq/c5.html#5 を読んだ?
689 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:27:51 ] Cなら NULL か 0 を必要に応じて使い分けなくてはならない C++なら、ほとんどのプログラマーが 0 を使っている VCなら nullptr で即解決
690 名前:687 mailto:sage [2007/05/14(月) 22:37:03 ] >>688 すまん687のNULLは(void*)0のことだと思ってほしい。 FAQ 5.5は0をポインタ型として扱うときの話だろ。 でもここではヌルポインタを整数型として扱おうとしている。 C++でいうところのreinterpret_cast<int>((void*)0)を表したかった。
691 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:28:36 ] 規格上の話を言えばポインタから整数型への変換は implementation-defined だから、何も言えないかと。 大抵はいちいち変換かけたりせず値としてはそのままにするだろうから、実際上は >687 の通りだと思う。 で、調べてて気づいたんだけど、9899:1999 だと、ポインタ型→整数型→元のポインタ型で元の値に戻ることすら 保証されてない(void* 経由ならOK)。 14882:2003 だと、整数型が十分な大きさであれば↑で元の値に戻ると明示されてるんだけど。
692 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:48:33 ] ttp://ja.wikipedia.org/wiki/%E3%83%8C%E3%83%AB_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF) まだやってんのかよ。実際にNULLをコードの中に入れてどういう結果が出力されたかで わかるだろ。各個人の勝手な定義や妄想はいらねーって。 time(NULL)だの使われているけど、何もないを与えてもしゃーないべ? だから、データや値として与えた場合と、ポインタに与えた場合とでどう違うか? それはそうと、>>580 あたりで \0 (NULL文字)の値(コード)が0なのは良いとして アドレス無しってところがどういうことなのか、説明を求む。 文字列の終端を示す文字として使われているんで、その終わりを示す場所にも 先頭からそのNULL文字そのもののアドレスまでちゃんと割り振られているとは思うが? >>568 で言えば unko の後ろに空文字が入っている場所のアドレスが存在していると思うが? #include <stdio.h> int main(void) { char a[5]="unko"; size_t i,sz=sizeof(a)/sizeof(a[0]); for(i=0; i<sz; i++) printf("a[%d] : %p / \"%c\" \n",i,&a[i],a[i]); return 0; }
693 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:56:42 ] printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]); なんならこうして、文字コードも参照してみるか?って終端の\0(NULL文字)に対して ASCIIコードでは0が割り当てられているのは既出だが、ちゃんとコード(値)0として 扱われてんだよ。そこは実装されている言語によって扱われ方も違う点はあるだろうけど なんだかんだ言ってもそれはおかしいといっても、実際はそう扱われているというのが現実。 なぁ、おまいら、いい加減目を覚ませよ?辻はもう処女じゃないんだぜ?それが現実さ(タバコを吸う紳士のAA略)
694 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:58:03 ] だれもそんな話してないだろ・・・
695 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:00:21 ] またNULLの話してんのかよ。毎度毎度よく飽きねえな
696 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:01:24 ] これでどうだ? #include <stdio.h> int main(void) { char a[5]; size_t i,sz=sizeof(a)/sizeof(a[0]); a[0]='u'; a[1]='n'; a[2]='k'; a[3]='o'; a[4]=NULL; for(i=0; i<sz; i++) printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]); puts(a); return 0; }
697 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:02:29 ] >>694 反応しちゃダメ
698 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:02:56 ] 毎年分からないやつが入ってくるんだから 同じ話題が繰り返されるのはしょうがないさ
699 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:09:19 ] これが現実だ φ1・2・3! images.google.co.jp/images?q=%E6%9D%89%E6%B5%A6%E5%A4%AA%E9%99%BD&lr=lang_ja&ie=UTF-8&oe=UTF-8&aq=t&rls=org.mozilla:ja:official&client=firefox&um=1&sa=N&tab=wi ttp://puka-world.com/php/upload/ren/img-box/1178589185304.jpg ttp://puka-world.com/php/upload/ren/img-box/1178589261938.jpg
700 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:35:35 ] つまりこういう事 void hoge(void) { return; }
701 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:45:03 ] 戻り値void に 空return を、御丁寧につける必要なんてないだろ そんなふうにかんがえていた時代もありました
702 名前:デフォルトの名無しさん [2007/05/15(火) 01:50:35 ] すみません。PHPはC言語でできてるみたいですが、ソースないっすかね?
703 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:52:28 ] >>702 ここからどうぞ www.php.net/downloads.php
704 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:57:28 ] >>693 \0は八進法で値を指定するエスケープシーケースなのだから、 ASCIIでなくても'\0'は0に等しくて当然。
705 名前:デフォルトの名無しさん [2007/05/15(火) 02:26:10 ] >>704 お前もわかってないアホだな。無駄口たたくな、自分の勘違いをさらすだけだから。 文字コードを表示するのに %d を用いている点が理解できてないな。
706 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:29:13 ] 704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28 >>693 \0は八進法で値を指定する \0は八進法で値を指定する \0は八進法で値を指定する \0は八進法で値を指定する ja.wikipedia.org/wiki/%E5%85%AB%E9%80%B2%E8%A8%98%E6%95%B0%E6%B3%95 ん?八進法で値を指定?意味わかんねー。参考にできる文献やソースきぼんぬ。 文字コードの割り当てに何進法とか関係ないから。むしろ16進数にて対応コードを 示している文献はよく見かけるけど。
707 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:33:47 ] >>704 文字の終端を意味する \0(NULL文字、空文字)を入れたところにも ちゃんとデータを格納するアドレスが存在しているって話だが? なんかややこしくなっているが、 unko の後ろにNULL文字があるからといって unko の後ろのアドレスがNULLになっているわけではないんだが・・・ その説明に何をわけの分からない説明にもならないことをいい掛かってきてんだね君は? まさか、値は0だけどアドレスはなしとか書いちゃった赤っ恥>>580 でつか?
708 名前:デフォルトの名無しさん [2007/05/15(火) 02:34:46 ] >>706 「猫でもわかるC言語プログラミング」 これ読め
709 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:37:00 ] ぐぐったらこの154にほとんど似たような文句があった・・・ nssearch.hp.infoseek.co.jp/clang/1127737437.html
710 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:40:51 ] 580 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:13:10 >>572 正確に言えば 正確に言えば 正確に言えば 正確に言えば 正確に言えば ¥0 =値0 、アドレス無し ¥0 =値0 、アドレス無し ¥0 =値0 、アドレス無し その後、文字の終端を意味するNULL文字の入ったデータに 前の文字列に続いてアドレスが割り振られていたことが プログラムの実行にて証明されたため、赤っ恥をかいてしまったのであ〜〜る あっ、ちなみに16進数で表示したかったら、%d から %x なり %X で指定してね♪
711 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:41:15 ] >>706 704じゃないけど 八進法で値を指定ってのはたとえば'A'=65(10進)=101(8進)だから これを'\101'と表すって事では。
712 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:42:45 ] 八進法 八進法 八進法 八進法 八進法 八進法 八進法 wwwwwww
713 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:44:06 ] 酔ってんの? 素面でこれだったら怖いけど。
714 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:45:47 ] 八進法、発進!ブ・ラジャー!
715 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:46:21 ] 相手すんなよ・・・くだらん
716 名前:ここでフレーム投下 mailto:sage [2007/05/15(火) 02:48:41 ] cで10進定数の0を使いたいのですがどうしたらいいでしょう。 普通に0と書いたのでは8進定数になってしまいました。
717 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:49:34 ] 単に順番にコードが割り当てられているのに、なぜか八進法wwwwww 何のために2進数、16進数があるか分かってないな、この八進法w >>704 > ASCIIでなくても'\0'は0に等しくて当然。 これも意味が分からん。そりゃ何進法になっても0は0だが そういうことをいってんじゃねーよ。\0が割り当てられている文字コードが0って話だろ。 ASCIIだからじゃなくて、ASCIIではそうなっていて、そのASCIIコードを参照できる ソースコードを用いた説明で、なぁ〜〜に意見にもならないわけの分からない理論を持ち出してんだ? \0 が 0 に等しい、だから何?そうじゃなくて、文字の終端を表す NULL 文字が入ったアドレスには 値に 0 が入っているのを敢えて参照して、ちゃんとNULL文字もデータとして格納されている アドレスが割り振られているって話 な・ん・だ・がw
718 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:51:11 ] 八進法必死だなw
719 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:52:18 ] 16進数 → \x00 8進数 → \000 \0 は8進数の0だったんだよ。まあ同じ0だけどね。
720 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:52:22 ] 消えろゴミめ
721 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:53:00 ] 八進法、発疹!そりゃちゃいまんがなw
722 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:54:04 ] 704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28 >>693 \0は八進法で値を指定するエスケープシーケースなのだから、 ASCIIでなくても'\0'は0に等しくて当然。 ASCIIとかじゃなくてNULL文字の入ったchar型のデータにどんな値が入ったかであって 値が入っているアドレスが存在するって話でしょ?ぶぅ〜〜ふふふふっ(吹いた)
723 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:55:45 ] ム板って何か些細なことに異様にこだわる人がいるよね。 やっぱ仕事のストレスなんだろうか。 SI業界で就活してたけどやめとこうかなあ…orz
724 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:55:51 ] >>716 0で始まる数字は8進数だよ。 int a = 090; とか書いてコンパイルしてみ、8進数に9という数字は無いからエラーになるよ
725 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 02:56:14 ] Cの構成を考えていて、偶然にも、 driver.ができました。 『C言語なら俺に聞け』と なっている位なのでそんな物は、 とっくにご存知なのでしょう、ね?
726 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:57:04 ] >>708 読む必要性なし、というか、ちゃんと八進法に関する文献やソースを分かりやすく 提示してもらえませんかねぇ?ASCIIじゃさまざまな文字が表現できないんで いまさらASCIIだけにこだわる気はねーよ。文字コードで10進数以外だと 16進数で表記されているのをよく見かけるんですけどねぇ〜。どこでつか、八進法で 表記しているところは?なんで八進法?そんなんで表記したら、桁が多くなるものだと 10進法で表すより桁の数が増えて面倒なんすけど?
727 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:59:00 ] いったい何の議論をしているのかさっぱりわからんw
728 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:59:55 ] 阿呆が喚いてるだけだろ。議論になんかなってないよ。
729 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:00:24 ] >>725 『続』 忘れていました、拡張子をなくしてもdriver、です。
730 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:00:36 ] いい加減秋田から、まとめとくね。NULL文字を入れたところにもアドレスは存在する。 勝手にNULLポインタにしちゃだめだぞ、めっ
731 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:01:48 ] >>726 source.で作成したので厭です。
732 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:02:19 ] 何でお前らそんなに喧嘩腰なの^^
733 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:03:30 ] ?
734 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:05:25 ] >>708 >猫でもわかるC言語プログラミング これは糞、ほかのをおすすめします
735 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:06:23 ] >>726 『続』 !(Φ_Φ+) あ、number.を間違えてしまいました、失礼。
736 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:06:37 ] さぁ、みんなで八進法の文字コード対応表を表示させようじょのいこ! #include <stdio.h> int main(void) { int i,cnt; for(i=32,cnt=0; i<127; i++,cnt++) { printf("%c : %3d",i,i); if(cnt%6==5) printf("\n"); else printf(" | "); } printf("\n\n魅惑の八進法!\n"); for(i=32,cnt=0; i<127; i++,cnt++) { printf("%c : %3o",i,i); if(cnt%6==5) printf("\n"); else printf(" | "); } return 0; }
737 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:06:52 ] んじゃこないだ見かけた望洋のアレ
738 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:08:59 ] あっ、すまん、これも追加しといて printf("\n\n平凡な十六進法!\n"); for(i=32,cnt=0; i<127; i++,cnt++) { printf("%c : %X",i,i); if(cnt%6==5) printf("\n"); else printf(" | "); }
739 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:11:20 ] ( ´ω`)
740 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:11:24 ] 微笑ましいけど鬱陶しいなあw
741 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:12:29 ] 天災と思って諦めてる