07/05/14 19:32:40
>>617
はいっ、そうやって言い返さないと気がすまない=自分を自分で擁護して必死こいているのがバレバレ
なんすけど?擁護する必要すらない。お前みたいな奴は養護学校へ行けw
619:デフォルトの名無しさん
07/05/14 19:33:18
やっぱり最近ここ荒らしてるって
このwつけるやつだと思う
620:デフォルトの名無しさん
07/05/14 19:34:08
>>617
> 言われて傷ついた?
それお前だろ?お前が基地外だのこのスレには不要だのバカだの言われて
戦力外通告されて必死だな
621:デフォルトの名無しさん
07/05/14 19:34:26
>>618
面白くない
622:デフォルトの名無しさん
07/05/14 19:36:51
>>619=>>286 以下このスレの質問には無関係な自分の知識をひけらかして他人の無知を探ろうとしている奴
クソレスして他人の気分を害している お 前 が 言 う な
>>605みたいなのがうぜぇ。本当にバカじゃね?何いきなり戻り値の話に持ち込んでんだよ?
NULLを使う場所間違ってんぞ
以後、ここで質問に関係ないレスをしている奴は、現実世界で友達のいない寂しがりやだと思って
見守ってやってください。ここではもちろん スルー でおながいします。
623:デフォルトの名無しさん
07/05/14 19:37:47
必死すぎだろ・・・
624:デフォルトの名無しさん
07/05/14 19:38:29
やっぱ荒れてきた
>>622
wつけるの止めたの?
625:デフォルトの名無しさん
07/05/14 19:39:18
必死すぎワロタ
626:デフォルトの名無しさん
07/05/14 19:39:55
誰か配列の大きさを調べる関数を書いてくれるとありがたし
627:デフォルトの名無しさん
07/05/14 19:41:03
>>626
大きさって何ですか?もっと詳しく!
628:デフォルトの名無しさん
07/05/14 19:42:52
>>622
>ここで質問に関係ないレス
> お 前 が 言 う な
>>626
Cでそれは無理ではないだろうか
629:デフォルトの名無しさん
07/05/14 19:46:04
さっきっからファビョって自分を擁護している奴って間違えた
>>580 と >>572か?まぁ、誰が誰をバカにしているかわからんが
答えるなら正確に調べてからレスするなり、参照できるページを使うのもありだぞ。
答えても相手が理解する能力がなければそれまでだしな。
けど、int mainの戻り値にreturn NULL;とかありえないから。
NULLに関するヒントとか何にもなってないし、明らかにint mainとしているだけあって
戻り値の指定が不適切ってことしか言えないから。関数の前に記述している型について
理解していないことをカミングアウトしなくて良いから、こんなスレで自分も初心者でぇ~す
ってことをアピールしなくて良いから、ファビョらず黙っていてくれ。
630:デフォルトの名無しさん
07/05/14 19:46:57
>>628=間違ったヒントを出して赤っ恥かいているバカ
以後放置よろ
631:デフォルトの名無しさん
07/05/14 19:47:29
すいません
C言語でしか作れないプログラムはありますか?
Cの良さってなんですか?
付け加えて他の言語の良さ悪さを教えてください
632:デフォルトの名無しさん
07/05/14 19:49:27
>>630
じゃあ正しいヒントだせば?
でなきゃ>>628と同じ
633:デフォルトの名無しさん
07/05/14 19:51:28
>>632
ただしいヒントとかじゃなくて、何であんな無意味なヒント出したんだ?w
何が意図かはっきりしろって言われてんじゃん。なお、NULLポインタについては
すでにソース付きでレスがあるんであしからず。
634:デフォルトの名無しさん
07/05/14 19:52:32
>>628=>>632 他人を装ってしらじらしいんですけど。
>>605 >>598 なんすかこれ?
635:デフォルトの名無しさん
07/05/14 19:53:12
>>633
さっきから間違えてるんだけど
>>613より前にレスしてないし
636:デフォルトの名無しさん
07/05/14 19:53:49
趣味でハックしてる人はソースコードでハァハァってオナニーしているって聞きましたが
お金かからなくていいですね・・・・・・・・・
うらやましいです
637:デフォルトの名無しさん
07/05/14 19:54:24
っと、最後まで自分の間違いを隠そうと相手に必死こいて相手のボロを出そうとしている
赤っ恥さんがいましたとさ。以後放置よろ。
638:デフォルトの名無しさん
07/05/14 19:57:10
>>637
いろいろ必死すぎ・・・
639:デフォルトの名無しさん
07/05/14 19:57:54
つうか 過去レス探すのメンドクサイからHP作れよ!
640:デフォルトの名無しさん
07/05/14 19:58:14
>以後放置よろ
これみて思い出したけど前回荒れたときもこいついた
641:デフォルトの名無しさん
07/05/14 20:01:38
んで、みんな >>605 をそれぞれやってみた?
コンパイルエラーだの警告だの出たよね?だから何?としか言いようがないんすけど・・・
>>605は何をしたかったか、明確なレスを求む。
642:デフォルトの名無しさん
07/05/14 20:08:02
>>641
やってないし、やる気もない
643:デフォルトの名無しさん
07/05/14 20:10:06
>>642
やってないお前に聞いてないけど?だからそういうレスするなって。
NULLポインタのアドレスを表示するコンパイルもしてないくせに。
644:デフォルトの名無しさん
07/05/14 20:12:55
>>643
>みんな
>それぞれやってみた?
やった人間だけレスしろというなら最初からそう書け
お前は抜けてるんだよいろいろと
645:デフォルトの名無しさん
07/05/14 20:14:08
さっきっから何かと噛み付いてこないと気がすまない基地外がいるんだな。
わかりやすいね、そういう人間って。このスレには初心者が集まって
自分より知識のないやつが多いと思い込んで、浅はかな知識でレスしちゃっているんだろうけど
それが仇となってボロだしまくりで恥をかく奴。
646:デフォルトの名無しさん
07/05/14 20:14:17
>>643
そろそろ消えてください
647:デフォルトの名無しさん
07/05/14 20:15:22
>>645
いちいちレスするな
うざい
648:デフォルトの名無しさん
07/05/14 20:15:36
>>644
はぁ?抜けているのはお前。しかもお前には脳みそが抜けているようだ。
日本語がわからない?何他人に指図してんだよ?こっちはやれよとは言ってないが
やってみた?とは聞いたが?何これ?何俺に噛み付いてんの?さっきから基地外だよなお前はw
抜けているのはお前の脳みそ、な?理解しろ。
> 最初からそう書け
何命令してファビョってんだよ?わけのわかんねーソースを書いたNULLポインタ厨w
649:デフォルトの名無しさん
07/05/14 20:15:44
ん~と、やってみてだから何?という人に早くレスしてあげてください。
さっさとね。
650:デフォルトの名無しさん
07/05/14 20:16:54
何言ってもこういう自分中心人間には効かないんだろうな
ある意味うらやましい
651:デフォルトの名無しさん
07/05/14 20:17:11
>>647=>>646=>>644 初心者叩きするのに失敗して赤っ恥ソースを出した厨房必死だなwwwww
何そこまで必死こいてんの?あっ、あのソースをコンパイルされて、自分がボロを出して
バカだということを露呈されるのが怖いんだぁ~~~~(^ー^)b
コンパイルした奴らにはあほだということがバレて大恥かいたもんなぁ~~~君ってw
652:デフォルトの名無しさん
07/05/14 20:18:44
>>650
そうだね、わけのわからねーソースを出してreturn NULLしちゃっているぬるい奴って
>>598 >>605 < こっ、こここ、これは・・・すごい大ヒントだ!こいつがバカだってことがわかる大ヒントw
653:デフォルトの名無しさん
07/05/14 20:20:42
>>605
ほらほら早く説明しろよ。初心者さんがコンパイルして待ってまつよ。
ほら、涙目を拭いてさ。
654:デフォルトの名無しさん
07/05/14 20:20:46
こうゆうスレには 群がってくるんだな
有る意味新鮮
655:デフォルトの名無しさん
07/05/14 20:21:01
>>590だけコンパイルできない(しょぼい環境)を使っていることがバレバレ
もしかして、OSはMS-DOSでつか?
656:デフォルトの名無しさん
07/05/14 20:22:24
608 名前:せんしぇ~ ◆cNsKLREitk 投稿日:2007/05/14(月) 19:01:47
はい。
コンパイルのはじき方が理解できましたか?
↑しかもこれがあのヒントの答えだろ?だから何?コンパイルエラーを誘うなら
別にreturn NULLじゃなくても通らないソースを書けばおkだろ?
NULLの取り扱いについてなんら説明になってないから。
657:デフォルトの名無しさん
07/05/14 20:25:05
>>631
以前他のスレで似たような質問があってその回答だけどどうぞ。
スレリンク(tech板:539番)
658:デフォルトの名無しさん
07/05/14 20:25:31
オレ、このスレのこと一生忘れない
659:デフォルトの名無しさん
07/05/14 20:25:34
しつけ~
660:デフォルトの名無しさん
07/05/14 20:30:26
ってか俺も言っててわけわからなくなったw
return NULL;だけを持ち出したらそれはそれで問題とならないが
あれがその前の流れからして何のヒントなのか?それが知りたいw
661:デフォルトの名無しさん
07/05/14 20:35:07
おわった?
662:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/14 20:39:12
環境依存
664:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/14 20:42:57
そう、何か値(データ)として与えるのと、ポインタに対して与えるのとでは
ぜんぜん違うんですねぇ~。これならわかるでしょ。NULLそのものが何なのか。
え?こんな説明じゃ不十分でヌルい?まぁ、後は使い方を適切にしてやってくれ。
ポインタにNULLを与えた場合、何も示すアドレスがないってことには変わりはないさ。
666:デフォルトの名無しさん
07/05/14 20:43:46
>>662
これ、時々偉そうに「環境依存」だなんていう奴がいたりするけど
実際に0が出ない環境を見たことあるのか?
667:デフォルトの名無しさん
07/05/14 20:50:12
>>665
まずは、お前のレスがどれか教えてくれ
668:デフォルトの名無しさん
07/05/14 20:56:55
>>667
そうやって相手をさぐろうとするだろ?だから気持ち悪いって思われるんだよ。
>>662が本日の最初だが?だから何だ?って言われることをお前は言うから
日頃周りから「なんだこいつ?気持ち悪い」って思われてんだよ。
いいたいことがあるなら言えよ、相手次第でいえるとかやっているから
お前は弱者を見つけては相手を叩く性格になっちまったんだろ?
自分が筋の通る説明ができないなら黙ってた方が良いぞ。
ちなみに、&xにして%pでポインタのアドレスを確認すると、
中にNULLで与えた値は入っているが、ちゃんとアドレスは割振られているから。確認してみろ。
669:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/14 21:00:51
#include <stdio.h>
void main(void)
{
printf("てすつ");
int a;
a=NULL;
return a;
}
672:デフォルトの名無しさん
07/05/14 21:04:23
>>668
被害妄想激し過ぎだろ…
普通に流れが混乱して誰が誰か分からなかっただけなんだが、
まあいいや
673:デフォルトの名無しさん
07/05/14 21:06:10
>>669
ありがとうございました
助かりました
他のアホどもとは格が違いますね
674:デフォルトの名無しさん
07/05/14 21:06:58
>>672
うざい。何が言いたいかはっきりしろ。相手がどうとか関係なしに
NULLがどういうことか?の話で説明する相手次第で事実関係を捻じ曲げたり
おかしいと自分が思ったことを叩きつけるのはどうかと。言いたいことがあるなら言え。
すでにソースを提示して証明されてんだろ。ポインタとNULL(データ)を与えるのとはどういことかについて。
理解できないのにこんなスレで無知な初心者相手にいい加減なレスをしているのか貴様は?
675:デフォルトの名無しさん
07/05/14 21:11:02
>>672
相手にしないほうがいいよ
さっきだって人違いって言ってるのにわかろうとしないし
といっても擁護乙って言われるだけだけど
自分に対する批判は>>605だと思ってるから
ちなみに>>662が本日の最初って言うのはうそだから
676:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/14 21:13:21
>>675
ですね
すみません
678:デフォルトの名無しさん
07/05/14 21:21:10
ぬるぽを代入するなら#define NULLPO 0にするか普通に0使えって事ですか?
679:デフォルトの名無しさん
07/05/14 21:21:55
>>631
マイコン等を使う組込系では、Cしか高級言語の選択肢がない
(ほかは低級なアセンブリ言語)という場合も多い。
680:デフォルトの名無しさん
07/05/14 21:23:58
>>678
NULLを代入したいのならNULLと書けばいいだろうガッ
681:デフォルトの名無しさん
07/05/14 21:24:08
>>666
「NULLが(void*)0と定義されていてコンパイルエラーになる」という可能性もある。
>>673
次から宿題スレ行け
C/C++の宿題を片付けます 87代目
スレリンク(tech板)l50
682:デフォルトの名無しさん
07/05/14 21:25:22
>>669
ここを宿題スレにするつもりか?
683:デフォルトの名無しさん
07/05/14 21:28:14
C FAQ の事も時々でいいから思い出してあげてください。
URLリンク(www.kouno.jp)
684:デフォルトの名無しさん
07/05/14 21:32:59
>>681
んー・・・
基本的に「代入したらいくつになるの?」って話だから、
代入ぐらいさせてくれ(っていうか初期化だな。こりゃ)。
int x=(int)NULL;
で x が 0 で初期化されない環境があるかないか、という事で。
685:デフォルトの名無しさん
07/05/14 21:42:51
あのさ
お前らって「Cパズル」ってやったこと無いだろw
686:デフォルトの名無しさん
07/05/14 21:48:31
ないお^^
687:デフォルトの名無しさん
07/05/14 21:52:39
>>684
C FAQから
URLリンク(www.kouno.jp)
たぶんこうこうところなら(int)NULLは0にならないのだろう
688:デフォルトの名無しさん
07/05/14 22:15:24
>>687
>たぶんこうこうところなら(int)NULLは0にならないのだろう
URLリンク(www.kouno.jp)
を読んだ?
689:デフォルトの名無しさん
07/05/14 22:27:51
Cなら NULL か 0 を必要に応じて使い分けなくてはならない
C++なら、ほとんどのプログラマーが 0 を使っている
VCなら nullptr で即解決
690:687
07/05/14 22:37:03
>>688
すまん687のNULLは(void*)0のことだと思ってほしい。
FAQ 5.5は0をポインタ型として扱うときの話だろ。
でもここではヌルポインタを整数型として扱おうとしている。
C++でいうところのreinterpret_cast<int>((void*)0)を表したかった。
691:デフォルトの名無しさん
07/05/14 23:28:36
規格上の話を言えばポインタから整数型への変換は implementation-defined だから、何も言えないかと。
大抵はいちいち変換かけたりせず値としてはそのままにするだろうから、実際上は >687 の通りだと思う。
で、調べてて気づいたんだけど、9899:1999 だと、ポインタ型→整数型→元のポインタ型で元の値に戻ることすら
保証されてない(void* 経由ならOK)。
14882:2003 だと、整数型が十分な大きさであれば↑で元の値に戻ると明示されてるんだけど。
692:デフォルトの名無しさん
07/05/14 23:48:33
URLリンク(ja.wikipedia.org)(%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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/14 23:58:03
だれもそんな話してないだろ・・・
695:デフォルトの名無しさん
07/05/15 00:00:21
またNULLの話してんのかよ。毎度毎度よく飽きねえな
696:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/15 00:02:29
>>694
反応しちゃダメ
698:デフォルトの名無しさん
07/05/15 00:02:56
毎年分からないやつが入ってくるんだから
同じ話題が繰り返されるのはしょうがないさ
699:デフォルトの名無しさん
07/05/15 00:09:19
これが現実だ φ1・2・3!
URLリンク(images.google.co.jp)
URLリンク(puka-world.com)
URLリンク(puka-world.com)
700:デフォルトの名無しさん
07/05/15 01:35:35
つまりこういう事
void hoge(void)
{
return;
}
701:デフォルトの名無しさん
07/05/15 01:45:03
戻り値void に 空return を、御丁寧につける必要なんてないだろ
そんなふうにかんがえていた時代もありました
702:デフォルトの名無しさん
07/05/15 01:50:35
すみません。PHPはC言語でできてるみたいですが、ソースないっすかね?
703:デフォルトの名無しさん
07/05/15 01:52:28
>>702
ここからどうぞ
URLリンク(www.php.net)
704:デフォルトの名無しさん
07/05/15 01:57:28
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。
705:デフォルトの名無しさん
07/05/15 02:26:10
>>704
お前もわかってないアホだな。無駄口たたくな、自分の勘違いをさらすだけだから。
文字コードを表示するのに %d を用いている点が理解できてないな。
706:デフォルトの名無しさん
07/05/15 02:29:13
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する
URLリンク(ja.wikipedia.org)
ん?八進法で値を指定?意味わかんねー。参考にできる文献やソースきぼんぬ。
文字コードの割り当てに何進法とか関係ないから。むしろ16進数にて対応コードを
示している文献はよく見かけるけど。
707:デフォルトの名無しさん
07/05/15 02:33:47
>>704
文字の終端を意味する \0(NULL文字、空文字)を入れたところにも
ちゃんとデータを格納するアドレスが存在しているって話だが?
なんかややこしくなっているが、 unko の後ろにNULL文字があるからといって
unko の後ろのアドレスがNULLになっているわけではないんだが・・・
その説明に何をわけの分からない説明にもならないことをいい掛かってきてんだね君は?
まさか、値は0だけどアドレスはなしとか書いちゃった赤っ恥>>580でつか?
708:デフォルトの名無しさん
07/05/15 02:34:46
>>706
「猫でもわかるC言語プログラミング」
これ読め
709:デフォルトの名無しさん
07/05/15 02:37:00
ぐぐったらこの154にほとんど似たような文句があった・・・
URLリンク(nssearch.hp.infoseek.co.jp)
710:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/15 02:41:15
>>706
704じゃないけど
八進法で値を指定ってのはたとえば'A'=65(10進)=101(8進)だから
これを'\101'と表すって事では。
712:デフォルトの名無しさん
07/05/15 02:42:45
八進法 八進法 八進法 八進法 八進法 八進法 八進法 wwwwwww
713:デフォルトの名無しさん
07/05/15 02:44:06
酔ってんの?
素面でこれだったら怖いけど。
714:デフォルトの名無しさん
07/05/15 02:45:47
八進法、発進!ブ・ラジャー!
715:デフォルトの名無しさん
07/05/15 02:46:21
相手すんなよ・・・くだらん
716:ここでフレーム投下
07/05/15 02:48:41
cで10進定数の0を使いたいのですがどうしたらいいでしょう。
普通に0と書いたのでは8進定数になってしまいました。
717:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/15 02:51:11
八進法必死だなw
719:デフォルトの名無しさん
07/05/15 02:52:18
16進数 → \x00
8進数 → \000
\0 は8進数の0だったんだよ。まあ同じ0だけどね。
720:デフォルトの名無しさん
07/05/15 02:52:22
消えろゴミめ
721:デフォルトの名無しさん
07/05/15 02:53:00
八進法、発疹!そりゃちゃいまんがなw
722:デフォルトの名無しさん
07/05/15 02:54:04
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。
ASCIIとかじゃなくてNULL文字の入ったchar型のデータにどんな値が入ったかであって
値が入っているアドレスが存在するって話でしょ?ぶぅ~~ふふふふっ(吹いた)
723:デフォルトの名無しさん
07/05/15 02:55:45
ム板って何か些細なことに異様にこだわる人がいるよね。
やっぱ仕事のストレスなんだろうか。
SI業界で就活してたけどやめとこうかなあ…orz
724:デフォルトの名無しさん
07/05/15 02:55:51
>>716
0で始まる数字は8進数だよ。
int a = 090; とか書いてコンパイルしてみ、8進数に9という数字は無いからエラーになるよ
725:気まぐれアナスイ
07/05/15 02:56:14
Cの構成を考えていて、偶然にも、
driver.ができました。
『C言語なら俺に聞け』と
なっている位なのでそんな物は、
とっくにご存知なのでしょう、ね?
726:デフォルトの名無しさん
07/05/15 02:57:04
>>708
読む必要性なし、というか、ちゃんと八進法に関する文献やソースを分かりやすく
提示してもらえませんかねぇ?ASCIIじゃさまざまな文字が表現できないんで
いまさらASCIIだけにこだわる気はねーよ。文字コードで10進数以外だと
16進数で表記されているのをよく見かけるんですけどねぇ~。どこでつか、八進法で
表記しているところは?なんで八進法?そんなんで表記したら、桁が多くなるものだと
10進法で表すより桁の数が増えて面倒なんすけど?
727:デフォルトの名無しさん
07/05/15 02:59:00
いったい何の議論をしているのかさっぱりわからんw
728:デフォルトの名無しさん
07/05/15 02:59:55
阿呆が喚いてるだけだろ。議論になんかなってないよ。
729:気まぐれアナスイ
07/05/15 03:00:24
>>725『続』
忘れていました、拡張子をなくしてもdriver、です。
730:デフォルトの名無しさん
07/05/15 03:00:36
いい加減秋田から、まとめとくね。NULL文字を入れたところにもアドレスは存在する。
勝手にNULLポインタにしちゃだめだぞ、めっ
731:気まぐれアナスイ
07/05/15 03:01:48
>>726
source.で作成したので厭です。
732:デフォルトの名無しさん
07/05/15 03:02:19
何でお前らそんなに喧嘩腰なの^^
733:デフォルトの名無しさん
07/05/15 03:03:30
?
734:デフォルトの名無しさん
07/05/15 03:05:25
>>708
>猫でもわかるC言語プログラミング
これは糞、ほかのをおすすめします
735:気まぐれアナスイ
07/05/15 03:06:23
>>726『続』
!(Φ_Φ+)
あ、number.を間違えてしまいました、失礼。
736:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/15 03:06:52
んじゃこないだ見かけた望洋のアレ
738:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/15 03:11:20
( ´ω`)
740:デフォルトの名無しさん
07/05/15 03:11:24
微笑ましいけど鬱陶しいなあw
741:デフォルトの名無しさん
07/05/15 03:12:29
天災と思って諦めてる
742:デフォルトの名無しさん
07/05/15 03:13:02
天才に向かって失礼な、めっ、めっめっ(猫をしかりつけるように)
743:デフォルトの名無しさん
07/05/15 03:17:53
カス
744:デフォルトの名無しさん
07/05/15 03:18:01
ハゲ
745:デフォルトの名無しさん
07/05/15 03:26:25
ナルはナルシストのナルさぁ~、決して成瀬川なるのなるではない。
746:デフォルトの名無しさん
07/05/15 03:26:33
(´ω`)
747:デフォルトの名無しさん
07/05/15 03:30:52
なんか変な方向に行ってるみたいだな。
1. ヌル文字の値が '\0' なのは規格で決まってる。
2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
'\0' の値はどの環境でも厳密に 0 になる。
(そもそもそんな特別なエスケープシーケンスを用意してしまったら、
8 進数で 0 を埋め込むことが不可能になってしまう)
これでいいだろ、もう。
748:デフォルトの名無しさん
07/05/15 03:35:06
>>747
だからぁ、NULL文字もちゃんとデータとして存在しているから
文字の終端を示す\0が入っているアドレスもちゃんと存在しているって話なんだが?
規格がどうとかじゃなくて、空文字でNULLが扱われていてもちゃんと文字データとして
存在して実態があるからNULLポインタの示す場所と勝手に解釈するなって話ナノーメートル
749:デフォルトの名無しさん
07/05/15 03:36:40
アドレスがあるのは当たり前だろ。
750:気まぐれアナスイ
07/05/15 03:37:54
!(Φ_Φ+)
頑張っていますね?
source.を書きたい、のですが、
original.なのでとって置きます。
751:デフォルトの名無しさん
07/05/15 03:39:07
あと、NULLポインタが示すオブジェクトに対してデータを表示させようとかするのは
どうも過去ログからしてタブーっぽい。指し示す場所がないゆえに、環境によっては
(null)とご丁寧に表示してくれているが、実体がないから何も表示できないのが当たり前だし。
752:デフォルトの名無しさん
07/05/15 03:42:19
>>748
うーん、「NULL」が出てきたら脳内で「NULLポインタ」に置換しちゃう人?
>>747は全くNULLポインタについて言及してないよ。
だけどまあ、NULL文字ってのは誤解しやすいような気もするから、
終端文字と表現するのがいいんじゃねえのかなあ。
753:デフォルトの名無しさん
07/05/15 03:44:13
NULL ポインタは参照しちゃいけない。
「あらゆる有効なアドレスと比較しても等しくならない」のが NULL ポインタの定義だから。
ただ、NULL 渡して表示させるという場合、
内部でポインタが NULL ならこれを表示・・・という分岐があるのなら問題ない。
参照してないから。
754:デフォルトの名無しさん
07/05/15 03:44:21
彼は自分の知らないことに話が展開していくのを怖がってるんですよ
755:デフォルトの名無しさん
07/05/15 03:45:04
おまいらほんっとにナルちゃんが好きなんだね ♥
756:デフォルトの名無しさん
07/05/15 03:45:50
NULL 文字という表記は良くない。
NULL はヌルポインタを表すマクロ名を表すから、紛らわしい。
null 文字という風に小文字で書くならいい。
757:デフォルトの名無しさん
07/05/15 03:45:50
>>749
いや、だからそれを勘違いしたのが >>580 なんだが、お前いい加減にしろ?
何歳だ?ゆとり教育世代か?寝ろやボケガキ
758:デフォルトの名無しさん
07/05/15 03:46:38
>>580 みたいな無茶苦茶なのは、既に訂正するとかそういうレベルじゃないな。
759:デフォルトの名無しさん
07/05/15 03:46:39
>>754
はいはい、すでに話がわかっているという証拠のソースも何度も提示しているのに
それすら自分の思い込みや勘違いで否定しているお前が論破されるのが怖くて
何も筋の通った意見がいえなくておびえているのはお前だろ?
760:デフォルトの名無しさん
07/05/15 03:46:51
表記の問題じゃない
761:デフォルトの名無しさん
07/05/15 03:47:37
怖がりすぎ
762:デフォルトの名無しさん
07/05/15 03:49:02
「彼」って自分の事だと思ったの?
自覚してんのだなぁ。
763:デフォルトの名無しさん
07/05/15 03:49:15
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。だから、NULL文字の値が\0とか話ではないが
値は \0 ではなく 0 だが?それすら間違ってんじゃん。
あくまでもエスケープシーケンス、 printf(""); の " " の中で使うときとかで用いられる
\n \t のように \ がついたものは値じゃないんだが?w
764:デフォルトの名無しさん
07/05/15 03:50:55
んで、ことの本質は >>580 にある \0 あるいは NULL文字データが入っているところにも
ちゃんとアドレスが文字列の終わりに続いて割り振られているって説明に、なぁ~~に
ごちゃごちゃとわけのわからない言い掛かりをしてきているんだね?って言っているんだが?
いや、もうええわ。八進法とかわけのわからん話を絡めるし、気持ち悪いぜ?
765:デフォルトの名無しさん
07/05/15 03:53:08
>>763
だからそこのどこにNULLポインタが出てくるの?
766:デフォルトの名無しさん
07/05/15 03:53:16
NULL
ヌルポインタを表す単なるマクロ。
C では 0 あるいは ((void*)0) と定義される。
'\0'
ヌル文字。値の全てのビットが厳密に 0 となると規格で決められている。
この表記の場合、型は C では int 、C++ では char 。
0
数値の 0 でもあり、ヌルポインタでもある。
型は int ではあるが、値 0 になる定数式がポインタに代入された場合、
あるいはポインタと比較された場合は、ヌルポインタと解釈される。
その場合、その値のビットが全て 0 になるという保証はない。
767:デフォルトの名無しさん
07/05/15 03:53:19
日本語でおk
768:デフォルトの名無しさん
07/05/15 03:54:30
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
全くNULLポインタには言及してないんだよ。
769:デフォルトの名無しさん
07/05/15 03:55:13
ヌル文字とヌルポインタは全くの別物ってのが分かってないのかねえ。
770:デフォルトの名無しさん
07/05/15 03:56:34
>>763
分かってない奴がでしゃばるな
771:デフォルトの名無しさん
07/05/15 03:58:03
あたいのこと、舐めたらいかんぜよ。
ちなみに \a \n \t \0 だのは文字であって値ではありませんので、あしからず。
それらを示す文字コードは値といってもまぁ差し支えないかもしれんけどね。
んじゃ、レベルの低い知ったかを相手にするのもここらでやめておいてやるわ。
まったく、本当に理解力のないどうしようもないやつっているんだなw
だからこの世はいつまでも頭の悪い奴が立場が悪くなってファビョって自暴自棄になるんだなw
772:デフォルトの名無しさん
07/05/15 03:59:23
>771
自己紹介乙
773:デフォルトの名無しさん
07/05/15 03:59:46
C++ の規格票(しかも 1998 年のドラフト)ですまんが、
null character (respectively, null wide character), whose representation has all zero bits.
ヌル文字(あるいはヌルワイド文字)、これは全てのビットが 0 の表現をとる。
>>771
\0 は文字だが '\0' は値だぞ。
774:デフォルトの名無しさん
07/05/15 04:00:23
ということで
NULL文字をNULLポインタと思いこんで延々暴れたバカがいた
ということでよいかな。まあ紛らわしいからその分は差し引いてあげるけどさ。
775:デフォルトの名無しさん
07/05/15 04:01:15
>>774
よい
776:デフォルトの名無しさん
07/05/15 04:02:17
URLリンク(ratan.dyndns.info)
\がついたものはここでも説明されているように「文字」であって値には該当せず。
いわゆる制御文字ゆえに表示される文字とは別扱いだが
それらにも「文字コード」が割り振られている。その文字コードを
char型のデータに入れることで扱っているのだが、そこまで理解できないかなぁ
理解力のないお○カちん達ってw
だからNULL文字に対応するコードが0であって、\0は値じゃなくてNULL文字と言うべき。
777:デフォルトの名無しさん
07/05/15 04:03:07
>>772
もうその程度のことでしか反論できないでしょ?おまえどこの学校出身だ?
まぁ、ランクE未満の大学でもなく大学未満なんでしょうね。
派遣のお仕事がんばってねぇ~~ ♣
778:デフォルトの名無しさん
07/05/15 04:03:25
>>747 で \0 と '\0' を使い分けてるのが理解できないんだろうか。
779:デフォルトの名無しさん
07/05/15 04:04:19
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。
780:デフォルトの名無しさん
07/05/15 04:05:45
>>765
>>580の
> ¥0 =値0 、アドレス無し
参照。ちなみに\0(NULL文字、空文字)に割り当てられているコードは0だが
\0自身は値ではなく「文字」ですから。
781:デフォルトの名無しさん
07/05/15 04:06:48
\0が値だなんて誰か言ってたっけ
782:デフォルトの名無しさん
07/05/15 04:08:18
まあ、'\0' も値が 0 になる整定数式だから
ヌルポインタとして扱おうと思えば扱えるけどね。
紛らわしいから絶対やっちゃいけないが。
783:デフォルトの名無しさん
07/05/15 04:09:01
>>580 がクソなのは既に誰もが認めている終わった話題だ。
784:デフォルトの名無しさん
07/05/15 04:09:57
580・・・
誰かがこんなのを擁護してるとでも思ったのかな
785:デフォルトの名無しさん
07/05/15 04:10:38
必死に無意味な説明をしようとした奴がボロ出しまくりでワロスwwww
なんだよ、\0が値とか言っちゃっているやつ?あたいにそんな小細工
通用しないかんねぇ~(スケバン恐子風に)
エスケープシーケンスは文字であって値ではない、これ定説。
ライフスペースでも定説。オウムには破防法(意味不明)
786:デフォルトの名無しさん
07/05/15 04:10:53
int *p = 2 - 4 + 2;
これもヌルポインタ。
787:デフォルトの名無しさん
07/05/15 04:13:55
>>747
1. ヌル文字の値が '\0' なのは規格
^^^^^^^^^^^^
対応コードが0ではあるが、NULL文字は値ではなく文字ってことな・ん・だ・が?
文字って値なんだぁ。それじゃぁ、char a[10]; a[0]='a';ってaって文字を入れるとき
値にAが入っちゃうのぉ~~?もはや値に有らず。
a[0]='\0';で空文字を入れることはあるけど、値で入れるなら '' とかつけずに
対応している文字コードを入れたらええんでな~~い?
788:デフォルトの名無しさん
07/05/15 04:14:12
>>785
ヌル文字とヌルポインタは別物ってことはわかったの?
789:デフォルトの名無しさん
07/05/15 04:17:09
自分の意味不明な筋の通らない理論を押し切ろうと、もう必死で
相手の筋の通った理論を屁理屈で解釈してつつこうと必死でしょ?
そんなんだから物事の本質が霞んでしまうんだよ。
路上を見てみろ?道路交通法をまともに守っている奴がいない、破っている奴らばかり
だから自分もそうする?それじゃ自分 も 道路交通法を理解していないと
道路交通法を知っている人に対して思われているだけだと気づくんだな。
警察の前じゃ違反は違反だぜ?キップ切られるぜ?免許傷つくぜ?
俺はまだ違反点数の累積は0だ。けど、違反点数も俺の免許もNULLじゃないぜ?
790:デフォルトの名無しさん
07/05/15 04:17:50
もうぬるぽ('A`)
791:デフォルトの名無しさん
07/05/15 04:17:52
「値が'\0'」と書いてあるんであって「値が\0」とは書いてないんだよ。
792:デフォルトの名無しさん
07/05/15 04:18:27
>>788
あたりまえじゃん、っつーかそれをず~~~っと昨日の>>580に対して言い続けてきたんだが?w
俺が理解していないと思ってんの?何回文字列の終端を示すNULL文字自身が入ったデータの
アドレスが存在していて、文字列の後ろの終端を示す部分がNULLポインタになっていないと説明したら
わかるんだと?鬱陶しいなぁ・・・
793:デフォルトの名無しさん
07/05/15 04:18:48
なるほど。そこにつっこんでたのか。
「ヌル文字の値」は「ヌル文字の文字コード」の意味だが、
確かに紛らわしい表現ではあったな。
でも、それを言うなら、
>char a[10]; a[0]='a';ってaって文字を入れるとき
~~~~~~~~~~~~~~~~~~~~~~
>a[0]='\0';で空文字を入れることはあるけど、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
もおかしいな。
「aの文字コードを入れるとき」、
「空文字の文字コードを入れることはあるけど」だな。
794:デフォルトの名無しさん
07/05/15 04:19:43
>>791
だから \0 は値じゃなくて 文字 だっつってんだろ・・・説明だって出てんだろ。
その文字、NULL文字に該当する対応コードが 0 だっつってんの。
対応コードは \0 か? \0 って何進法?w
795:デフォルトの名無しさん
07/05/15 04:20:24
>>792
763 名前:デフォルトの名無しさん [sage] :2007/05/15(火) 03:49:15
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。
796:デフォルトの名無しさん
07/05/15 04:21:28
>>794
\0 は文字だけど '\0' は文字リテラルで値だろ!!!
何度言ったら分かるんだ!!!
797:デフォルトの名無しさん
07/05/15 04:22:38
>>793
お前が >>736 の出力結果を理解していないことがわかった。もう黙ってろ。
文字型の変数に文字でなくても直接文字コードを入れても使えることが理解できてないんだな。
通りで話がわからないわけだw
なんか、俺がNULLポインタとデータの違いがわかってないみたいないわれ方しているが
さっきっから俺に対して曲解した考えで論破しようと必死こいている奴の方が
曲解しているだけあって理解していないのがバレてんだが・・・なんだよ \0 が値って?
あたいにはそんなの通用しないかんね!
798:デフォルトの名無しさん
07/05/15 04:23:04
\0は値じゃない。
'\0'は値。
799:デフォルトの名無しさん
07/05/15 04:23:39
この流れなら言える!お前ら全員ぬるぽ!(寝るぽ!)
800:デフォルトの名無しさん
07/05/15 04:23:57
何というか日本語がこれほど通じないのは、もはや釣りだとしか思えない。
801:デフォルトの名無しさん
07/05/15 04:25:44
>>797
C に「文字型」なんてありません。
802:デフォルトの名無しさん
07/05/15 04:26:02
クォーテーションで括ってるか括ってないかの違いがまだわかってないな
803:デフォルトの名無しさん
07/05/15 04:26:21
779 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 04:04:19
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。
↑こういうことしかいえなくなっているら。しかもこれは自分基準w
こういうのが鬱陶しいんだよな。だから何?としか言われない
間違いではないことを気にいらねーって罵倒してくる奴。
お前何様だよ?デジタル世界の王者か?欧米か!?
てめぇ基準なんてどうでも良い。検索してどっちが多く使われているか調べてから出直せw
804:デフォルトの名無しさん
07/05/15 04:27:12
紛らわしいのにわざわざ大文字で書く理由が知りたい。
805:デフォルトの名無しさん
07/05/15 04:29:59
>>773
値って言うならちゃんと演算子使って演算できんだろうな?
その\0(空文字)をどうやって演算すんだ?
文字データとしては表示すらされないってのにw
文字同士の計算でもあるの?Aを文字と扱うか16進数として値を10として扱うかでは大違いだろ
それすら理解していないなんて、どこの大学出身だ?あっ、大学未満か
806:デフォルトの名無しさん
07/05/15 04:30:55
\0は値じゃないって言ってるでしょ
807:デフォルトの名無しさん
07/05/15 04:32:40
本気で言ってるのか???
str[i] != '\0' は演算だろ?
そして printf("%d\n", '\0' + 3); がエラーにでもなると思ってるのか?
808:デフォルトの名無しさん
07/05/15 04:33:36
なんで'\0'を勝手に\0に置き換えるかな。
809:デフォルトの名無しさん
07/05/15 04:35:06
どう見ても釣りです。
本当にありがとうございました。
810:デフォルトの名無しさん
07/05/15 04:37:07
結論出しておくわ。これは捻じ曲げようとしても無理。
\n \a \t \b \0 それらは文字であって値ではない。とりわけ制御文字といわれるものであって
値のように演算は不可能。
URLリンク(ratan.dyndns.info)
でも説明されているように、文字(制御文字)であってそれらにも文字コードが割り振られていて
その文字コードなら割り振られているという事実を踏まえて、その文字の値として扱うことは可能。
URLリンク(www.psl.ne.jp)
たとえば、AはASCIIコードでは16進数にて41(10進法では65)と指定されていて
コードに1を足すことによって66にした場合、その文字コードを参照して表示される文字は
ちゃんとBになるってのは >>736 を実行すりゃ一目瞭然。
実証、検証されているのにつまらない屁理屈を言う奴、だめぽ。
811:デフォルトの名無しさん
07/05/15 04:38:16
>>808
もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w
値は\0よって、スケバン風に言ってなさいってこったでパンナコッタ。
812:デフォルトの名無しさん
07/05/15 04:38:47
>もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w
もうオワタ\(^o^)/
813:デフォルトの名無しさん
07/05/15 04:39:40
また、Bという文字に1を足すなんておかしい。文字コードに対してならおk。
Bに1を足すなんて、環境によっては文字列の追加として B1 と解釈されかねんよ。
814:デフォルトの名無しさん
07/05/15 04:40:29
>>811
本気で分かってねえな・・・。
呆れてものも言えん。
815:デフォルトの名無しさん
07/05/15 04:42:23
だめだこいつ
816:デフォルトの名無しさん
07/05/15 04:42:28
最後まで自分の理解する頭のないことを露呈しつつ粘着乙。お前だけだよ、こんなところで
朝まで居残りしているのは。
817:デフォルトの名無しさん
07/05/15 04:45:46
全くだ
818:デフォルトの名無しさん
07/05/15 04:48:26
っと、最後までこんなスレで自分の間違いを必死こいて間違いじゃなかったことにしようと
ここでレスしている人に対して噛み付いてくるメガネデヴピッツァですた(・∀・)
819:デフォルトの名無しさん
07/05/15 04:49:14
?
820:デフォルトの名無しさん
07/05/15 04:49:43
もう放っとけ。
821:デフォルトの名無しさん
07/05/15 04:50:10
うん
822:デフォルトの名無しさん
07/05/15 04:50:33
\0は値じゃなくて文字だよぉ~~、対応コードは0で値として扱えるけどな、ケケケw
823:デフォルトの名無しさん
07/05/15 05:07:05
スレリンク(tech板:66番)
おーい、ちょうど良いや、ここでふぁびょ~んなお前ら、これに答えてやれよw
824:デフォルトの名無しさん
07/05/15 05:13:38
>>814
'\0'でもこれは制御文字であって値にあらず。何が言いたいかはっきりしろよ?
このスレってやっぱ分かってねーとかそことなく揺さぶるけど、結局
自分の意見を言わずに逃げるチキンが多いよな。この前もそう。
お前分かってないなみたいなことを言ったが、答えは fgets の中の文字数の指定に
255 と入力ミスをしたのをネチネチ陰湿にあおってきただけで、そいつ自身は
fgetsの使い方についてろくに答えず。入力ミスしたやつは間違いにしろ
参考にできるページを参照してたが、このスレのタイトルを理解しておらず
答える気がないくせに相手にだけくだらねぇ間違いを指摘する程度でここにいるなら
出て行った方がよくね?何、自分にとってイラつくものを見て気分を害したんだよ!みたいな
不満をわざわざいい掛かってくるのか、さっぱりわからねぇ。こんなところにいるくらいなら
車軸の壊れそうなジェットコースターにでも乗ったら?
825:デフォルトの名無しさん
07/05/15 05:26:00
char a; に対して
a=0; a='\0'; はおkだが、前者は0という値、後者は明らかに文字データゆえに
\0は文字ではあるが値じゃないんだが、それすら理解していないのはどっちだぁ~~い?
NULLはWikiにも記録されているが、ゼロと区別するためのドイツ語で0を意味するnullを用いて
何もないを意味するが、null文字は表示される文字も何もない文字として扱われていて
割り当てられている文字コードは0だが文字そのものはアルファベットも数”字”も含めて
文字であって”値”ではない。\0 およびその他制御文字は表示されないけど文字であって
値ではない。あたいも値ではない。
826:デフォルトの名無しさん
07/05/15 05:27:21
ようやく分かった。お前が何が分かってないかが。
char 型というのは CHAR_MIN~CHAR_MAX の値を入れることの出来る整数型であって、
C には「文字型」なんて型はないんだよ。
827:デフォルトの名無しさん
07/05/15 05:28:20
値だっていうなら a=\0; をやればいいさ。コンパイルエラー起こすけどな、ケケケ
誰かさん、敢えて\0と'\0'のシングルクォートを強調したが、それをつけてんなら
なおさら値じゃなくて文字データだよなぁ。まさか、値にわざわざ''をつけて代入してんのかーい?
828:デフォルトの名無しさん
07/05/15 05:30:20
入れることの出来る、じゃないな。
表現することの出来る、だ。
829:デフォルトの名無しさん
07/05/15 05:31:05
わかんねーなら調べろだの、調べてないだのを指摘するくらいなら
調べられる参考文献を参照しろってーの。ろくにそういうのも出さずに
ただ自分が思った(間違った)理論を提唱されても、お前が決めた仕様でも規格でも
ルールでもないだろって話で流されるよ。本来の基本概要を理解している、知っている人には
うそは通用しない。\0は制御文字であって値じゃない。あたいでもそんなことは分かっている。
勝手にありもしないことを定義しないでくれ。\0を文字コードで参照するなら0なら分かるし
文字データとして入れるのに '\0' で指定するなら分かるが、値じゃない。文字だ。
いつまでもモジモジしてんじゃねーぞ。
830:デフォルトの名無しさん
07/05/15 05:35:41
C の規格票読め。
読むだけならタダだ。
831:デフォルトの名無しさん
07/05/15 05:38:34
くどいようだが、すでに俺は証明、提示をした。制御文字は値ではなく
文字データ。文字コードによって割り当てられている文字データ。
その文字コードがあっても、コードに対応した文字データがなければ
文字コードを使ってもナンセンス。\0は便宜上使われている文字であって
これは値ではない。そして本来は表示されない制御文字も、便宜上
使えるようにと割り当てられている代用の文字があるだけであって
\a \n \t そのものは値ではなく制御 文 字 であーる。
そんなの当たり前なのに、なーーにが値だ、あたいにはそんな屁理屈、通用しないかんね。
832:デフォルトの名無しさん
07/05/15 05:40:08
\0 はエスケープシーケンスで''か""の中に出てこないと意味がない。
833:デフォルトの名無しさん
07/05/15 05:43:31
\0は代用で用いられている文字であって値ではない。値じゃない。
値に対しても定義が曖昧だが、みたまんま、\0 \a \t \n は制御文字として
代用で使われているものであり、数値ではない。数字だって場合によっては
数値ではなく数字(数の文字)として扱われるが、その数の文字に対してだって
文字コードが割り当てられているけど、数字のまんまの数値で文字コードは割り当てられて
いないのは、ASCIIコードの対応表を出漁するプログラムで一目瞭然。
そう、単に文字コードが割り当てられているんであって、文字そのものは
値じゃ~~ないんだよ。制御文字として代用されたものだけ特別扱いで値になっちゃうの?
それじゃ、アルファベットや数字も値?値じゃ~ねぇなぁ、文字データは演算できんよ。
割り当てられた文字コードを数値として演算することは出来るけどな。
たとえばAに割り当てられている文字コード1を足してBにすることが出来るというのは
説明済み。だけど、Bに1を足すのは不可能。文字の結合として B1 としちゃう
環境や言語は存在するから、要注意。文字は文字データであって値にあらず、これ当たり前。
834:デフォルトの名無しさん
07/05/15 05:44:23
#include <stdio.h>
int main() {
int a = 1;
a = '\0';
printf("%d", a);
return 0;
}
835:デフォルトの名無しさん
07/05/15 05:44:57
長文になったが、制御文字の代用の \0 は値じゃなくて文字。モジモジ君だって
それくらい知ってるよ?割り当てられている文字コードと文字データをごっちゃにしないよう
今後は注意しましょうね♪ さっ、これにこりたらこんなところにいないで
とっととジェットコースターにでも乗って来い。頭がスカッとすっぜ?
836:デフォルトの名無しさん
07/05/15 05:54:03
というかCでいう文字とは整数の一種でつまりは値なんだが。
と今更こんなことを言ってみるが、みんな寝ちゃったかなw
837:デフォルトの名無しさん
07/05/15 05:56:04
文字定数
838:デフォルトの名無しさん
07/05/15 06:02:23
眠いから寝る
839:デフォルトの名無しさん
07/05/15 06:11:24
朝までやってたのか!
840:デフォルトの名無しさん
07/05/15 06:20:18
___ 見えませ~ん
∥ | ∨
∥現実 ∧_∧ .ヘ∧
∥ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ 読めませ~ん
∥ | ∨
∥空気 ∧_∧ .ヘ∧
∥ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ 知りませ~ん
∥ | ∨
∥常識 ∧_∧ .ヘ∧
∥ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ ありませ~ん
∥ | ∨
∥未来 ∧_∧ .ヘ∧
∥ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
841:デフォルトの名無しさん
07/05/15 06:20:28
何やってんだお前ら?
842:デフォルトの名無しさん
07/05/15 06:24:22
子供同士でサンタは居るか居ないかで喧嘩してたようです。
843:デフォルトの名無しさん
07/05/15 06:41:30
C 規格票より
URLリンク(www.jisc.go.jp)
JIS X3010 を検索
3.7.1 文字、1バイト文字
<プログラミング言語Cでの意味> 1バイトに納まるビット表現
5.2.1 文字集合
(略)
すべてのビットが 0 であるバイトをナル文字という。
(略)
6.4.4.4 文字定数
構文規則
文字定数:
'c文字列'
L'c文字列'
(略)
単純文字定数は、型 int をもつ。
1 バイトの実行文字に対応する単一の文字を含む単純文字定数の値は、
対応付けた文字の表現を整数として解釈した数値とする。
2 文字以上を含む(例えば 'ab')又は 1 バイトの実行文字で表現できない文字
若しくは逆斜線表記を含む単純文字定数の値は、処理系定義とする。
単純文字定数が単一の文字又は逆斜線表記を含む場合、
その値はその単一の文字又は逆斜線表記の値を持つ char 型のオブジェクトを
int 型に変換したときの結果とする。
(略)
例 1. 普通、ナル文字を表すために表現 '\0' を使う。
(略)
844:デフォルトの名無しさん
07/05/15 06:50:52
文字は値だな。
845:デフォルトの名無しさん
07/05/15 06:52:31
だめだこいつ、制御文字は表示できる文字データじゃないから
便宜上代用されている\0 \a \n \tがあってもそれを値だと思っているよw
文字と値の違いが分からないからって、プログラムが出来ないわけじゃないから
安心しろ。だけどお前の頭じゃ限界が見えているから、言語の使用とか
電子計算機の仕組みにかかわらず大学で受ける授業にはついていけないだろうから
低学歴のまま人生を諦めろ。まぁ、学歴が高くなくても成功する人も稀にいるから
努力は怠らないこったね。つまらないことに労を費やしているうちに、老いていくし
元気もなくなるから、早いところ人生の積み重ねを始めておけ。
間違っても間違いを押し切ることはするな。\0 が値に見えるなら目じゃなくて頭が
どうかしているよ。
846:デフォルトの名無しさん
07/05/15 06:54:17
規格表を見る限り、\0 \a \n \t は「c文字」であって「文字」ではない。
847:デフォルトの名無しさん
07/05/15 06:54:40
>>844
ダウト。文字データそのものは電子計算機はもってないんだよ。
人間が文字として認識する形を示すものを、文字コードで対応させて
参照しているのが分からないみたいだね。所詮、大学未満の考える
つまらない浅はかな考えだな。大学で普通に習うから、まだ受験するチャンスがあるなら
がんばって大学に行きな。基本的には入学に年齢制限はないから。60過ぎても入学する人もいるし。
848:デフォルトの名無しさん
07/05/15 06:55:00
×規格表
○規格票
849:デフォルトの名無しさん
07/05/15 06:55:50
>>847
脳内定義はどうでもいいから >>843 の規格票を読め。
850:デフォルトの名無しさん
07/05/15 06:56:12
>>846
制御文字の代用で使われている文字だと言っているんだが?
どう見ても値じゃなくて円マーク+文字の組み合わせの文字だろ。
いい加減馬鹿は市ねよ。うぜぇよ。値に対する概念もない馬鹿が
851:デフォルトの名無しさん
07/05/15 06:57:48
>>850
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
「逆斜線表記」は「c文字」だ。
852:デフォルトの名無しさん
07/05/15 06:59:01
>>849
いや、脳内じゃなくて書かれているまんま述べただけだが?
お前こそ理解しろよwwww
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
はい、自分で爆弾抱えたまま爆発させて自爆しちゃいましたね。
決定的な証拠。表現を使うであって値とは掛かれていません。
ちなみに、null文字のコードが0に割り当てられているのは事実だが
これは人間が決めたことであってもともと電子計算機がそれをそうだという
仕組みを持っていたわけじゃないんだよ。文字そのものが数値じゃないんだから。
いい加減、文字が人間が作ったものだと気づいてね。計算機がやっているのは
あくまでも0と1の組み合わせの演算。そのデータから文字データを参照して
表示する際に文字コードを使ってんだよ。大学レベルだから、専門学校以下は黙っててね。
853:デフォルトの名無しさん
07/05/15 07:00:10
>>851
ええ、だからお前もしつこいなぁ。理解力のない馬鹿は失せろ。
俺がまず否定しているいのは \0 が値ということ。値じゃなくて
どこをどう見ても文字。お前はそれを敢えて c文字だと言ってるしw
値じゃなくて文字、それについては俺がすでに述べてるんだが?
ボケは市ねよ、低学歴w
854:デフォルトの名無しさん
07/05/15 07:00:50
\0 は c文字。
'\0' は文字定数で値。
855:デフォルトの名無しさん
07/05/15 07:01:53
>>854
残念ながら制御文字であって \0 は便宜上表示できない制御文字の代用で
使っている文字だ。値ではない。値について理解していない馬鹿は失せろwwww
856:デフォルトの名無しさん
07/05/15 07:02:30
>>855
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
あ、構文規則の読み方も分からない低学歴なのか?
857:デフォルトの名無しさん
07/05/15 07:05:26
こういう話題であげあしの取り合いになるのは宿命なのか
858:デフォルトの名無しさん
07/05/15 07:05:59
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
くどいようだが自分で墓穴を掘ってそのままあの世へ行け。
二度と人間界に戻ってくるな。これが読めないなら日本語を勉強してから出直せ。
そこにある \0 は紛れもなく
\ と 0 を並べたそれぞれが文字であり、組み合わせて値としたものではない。
これ以上理解できない曲解しかしないやつは放置するね。
値じゃないのは事実。文字コードは便宜上人間が割り当てたもので
Aそのものが値を持つとかないから。AはA。人間が作った文字コード表に
電子計算機が持つ基本の数値を割り当てただけだから。
859:デフォルトの名無しさん
07/05/15 07:06:37
とうとう規格票に文句付け出したよwwwwwwwwwwwwwwwwwwwwwwww
860:デフォルトの名無しさん
07/05/15 07:07:19
盛り上がっていいじゃない
861:デフォルトの名無しさん
07/05/15 07:07:32
>すべてのビットが 0 であるバイトをナル文字という。
これが見えないのか?
862:デフォルトの名無しさん
07/05/15 07:07:39
char a=0; の a を %c で表示すると、というか表示はされないが空文字が参照される。
a='\0'; とした場合、明らかに文字データを使っているんであって
a=0; のような値は使われていない。ちゃんと文字データと値の違いを理解しましょーね
大学未満w
863:デフォルトの名無しさん
07/05/15 07:10:03
>単純文字定数は、型 int をもつ。
>1 バイトの実行文字に対応する単一の文字を含む単純文字定数の値は、
>対応付けた文字の表現を整数として解釈した数値とする。
これも読めないのかな。
864:デフォルトの名無しさん
07/05/15 07:10:53
誰かさんは制御文字の代用で使われている \ と 0 という2つの文字をくっつけると
値になっちゃうらしいよ?w どこをどう見ても \ も 0 もつなげても \0 という 文字 です
ありがとうございました。文字と値の違いが分からない痛い子は以後放置よろ。
865:デフォルトの名無しさん
07/05/15 07:11:16
#include <stdio.h>
int main() {
char a = '\0';
printf("%s", a == 0 ? "'\\0' == 0" : "");
return 0;
}
866:デフォルトの名無しさん
07/05/15 07:12:24
\0 は値じゃないと何度言えば分かるのか。
867:デフォルトの名無しさん
07/05/15 07:13:29
規格票をまともに読めないキチガイを相手にしても無駄だな。
868:デフォルトの名無しさん
07/05/15 07:13:55
c文字c文字うっせーよボケ。俺は値じゃなくて\0も文字だっつってんだよw
文字と値の違いも分からない弱い頭ってやーね、こいつぜってー最後は犯罪者になってんな
理解力がないのが自分だと気づいていない、判断力を失った麻薬中毒者のごとく
869:デフォルトの名無しさん
07/05/15 07:14:54
まだやってたのか?
870:デフォルトの名無しさん
07/05/15 07:16:49
引き際を失ったんだろうな・・・可哀想に。
871:デフォルトの名無しさん
07/05/15 07:17:06
んでよぉ、本質はそんなことじゃないんだよ。null文字が入った場所にも
ちゃんとそのnull文字の文字コードが入ったデータを示すアドレスが入っているんであって
>>580がいう値0なのにアドレスなしってのが間違いって話なんだが?
何ここまで複雑に話をこじらせちゃってんだろうねw
これだから理解力のないやつは、何か相手の知ってなさそうなことを持ち出して
揺さぶろうとするんだけど、自分の理解力のなさが露呈されて墓穴を掘るんだよねw
872:デフォルトの名無しさん
07/05/15 07:18:05
いつの間にかnull文字のnullが小文字になっててワロタw
873:本日の自作自演擁護厨
07/05/15 07:18:34
844 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 06:50:52
文字は値だな。
846 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 06:54:17
規格表を見る限り、\0 \a \n \t は「c文字」であって「文字」ではない。
「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。
「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。
ちゃんと自分で文字と言っているのに文字じゃないとか言い出す大ボケかますしw
874:デフォルトの名無しさん
07/05/15 07:18:56
>>580 の話はもうとっくに終わってるんだが・・・。
875:デフォルトの名無しさん
07/05/15 07:19:47
C の規格では「文字」はビット列、すなわち数値であると規定されています。
>3.7.1 文字、1バイト文字
><プログラミング言語Cでの意味> 1バイトに納まるビット表現
876:デフォルトの名無しさん
07/05/15 07:19:52
580が\0と書いたのが気にくわないんじゃないの。
ちゃんと'\0'と書け、と。
(でも、そうすると、854,855の対応が気になるわけだけど)
877:デフォルトの名無しさん
07/05/15 07:19:58
まだやってたのか
そんな暇あるならバイトでもしろよ
878:デフォルトの名無しさん
07/05/15 07:20:46
テレビ見ながらついでで相手してるだけだからどうでもいい。
879:デフォルトの名無しさん
07/05/15 07:22:22
>>843って結局 JIS 規格の話だろ?逆斜線ってのは、大学の授業で聞いたことあるけど
日本じゃもともと存在していなかったんで、¥(円マーク)をバックスラッシュの代用で
使ったって話で、それについて制御文字の表現を \ を前に用いる規格があるって話で
>>843 は文字が値とかって話じゃなくて、制御文字を日本では \ との組み合わせで
使われているって話でしょ?何勘違いして直接関係ない文献を勘違いしたという
意味の分からん説明をしているのか、理解不能だわ。
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
これについてはあくまでも表現の仕方であって、値として使っているって話じゃないよ。
JIS規格におけるバックスラッシュの代用が \ って話だろw
880:デフォルトの名無しさん
07/05/15 07:25:56
よくこんな釣りを思いつくよなあ。尊敬するぜ。
881:デフォルトの名無しさん
07/05/15 07:28:11
\ がバックスラッシュで表示される環境で見てるものとして脳内変換しろよ。
882:デフォルトの名無しさん
07/05/15 07:28:38
(´ω`)
883:デフォルトの名無しさん
07/05/15 07:31:13
URLリンク(okuyama.mt.tama.hosei.ac.jp)
でも書かれているけど、明らかに '\0' をナル文字といって値とは言っていない
敢えて値というならそれは 0。\0 でなくて敢えて '\0' というならなおさらそれ自身は値じゃなくて
なる文字。文字がなんなのか、どのように制御されているのか分からない馬鹿って困るな。
大学レベルじゃまずついていけない頭の持ち主か。何JIS規格のバックスラッシュの
代用について話をしてんねん、ボケが
884:デフォルトの名無しさん
07/05/15 07:31:46
ちょっと哀れに思えてきたねw
885:デフォルトの名無しさん
07/05/15 07:32:16
それは、5.2.1参考
「この規格で規定する基本文字集合の中の二つの要素
\と~は、JIS X 0201では、それぞれ¥(円記号)と
 ̄(オーバーライン)に置き換える」
で既出なんだな
886:デフォルトの名無しさん
07/05/15 07:32:24
バックスラッシュの代用の話なんて規格票に何も書かれていないんだが。
規格票読んでないのバレバレ。
887:デフォルトの名無しさん
07/05/15 07:34:02
とうとうISO646にまでケチをつけるまで来たのか?
888:デフォルトの名無しさん
07/05/15 07:34:08
>>886 は >>843 のレスの部分に、ということね。
889:デフォルトの名無しさん
07/05/15 07:35:54
>883
文字定数が('A'とか'B'とか'\0'とか)が値を持たないといいたいわけ?
890:デフォルトの名無しさん
07/05/15 07:37:17
「値」という言葉の定義すら怪しいな。
数値以外は値じゃねー、と考えてそうだ。
891:デフォルトの名無しさん
07/05/15 07:39:25
#include <stdio.h>
#define TEST '\0'
int main() {
printf("%d", TEST);
return 0;
}
892:デフォルトの名無しさん
07/05/15 07:39:59
もうここまで来ると理屈抜きで全面的に賛同して輪廻から解放してあげたいのだが
こだわっているポイントがイマイチ分からない
893:デフォルトの名無しさん
07/05/15 07:41:29
暇な時に適当に遊んであげれば良いと思うよ。
894:デフォルトの名無しさん
07/05/15 07:42:08
void main()
gets()
NULL
\0
他になんかあったっけ?
895:デフォルトの名無しさん
07/05/15 07:42:24
>>894
fflush(stdin);
896:デフォルトの名無しさん
07/05/15 07:42:29
でもそういうスレじゃないしな多分
897:デフォルトの名無しさん
07/05/15 07:42:59
こいつの脳内計算機では「値」ってのと文字とが区別されてるんだよ、きっと。
メモリにタグビットかなんかがついてて。
898:デフォルトの名無しさん
07/05/15 07:44:51
URLリンク(okuyama.mt.tama.hosei.ac.jp)
> 次は,エスケープ文字です。
> \a ビープ音(警報)
略
> # [例1]'\0':ナル文字
> # [例2]'\x00':ナル文字
エスケープ”文字”です。おまけにシングルクォートつきで '\0' ナル”文字”
どこにも値なんて書かれていましぇ~~~ん。'\0'と敢えて表記するなら
なおさらナル”文字”であって値じゃありましぇ~~~ん。そして
僕は死にましぇ~~ん、C言語あるから!
899:デフォルトの名無しさん
07/05/15 07:44:58
>894
malloc&freeを忘れてもらっては困るな
900:デフォルトの名無しさん
07/05/15 07:45:19
こういう奴は議論してる最中は絶対に認めないけど、
数日経つと「そんなの当たり前じゃないか」とか言い始めるタイプ。
901:デフォルトの名無しさん
07/05/15 07:46:20
>>898
>>875
902:デフォルトの名無しさん
07/05/15 07:46:26
>>897
お前の低レベルな頭じゃ文字と値の違いがなくて、数字の0として扱われている0も
値の0なんだろうねwwww 文字と値の違いが分かってないから、数字が入ったとき
数値との区別がついてねーようだな。お前、文字と数字の入り混じったデータを
扱ったこともない素人だろw
903:デフォルトの名無しさん
07/05/15 07:46:56
おまえら夜通しやってたのか?
904:デフォルトの名無しさん
07/05/15 07:47:26
このスレはかまってくれる人が多いね。
宿題スレじゃもう誰も相手しなくなったのに。
905:デフォルトの名無しさん
07/05/15 07:47:45
面白いオモチャだからいじってみた。
906:デフォルトの名無しさん
07/05/15 07:48:30
>>901
いや、モロニ表現って書いてあるやん。ところでさぁ、話をそらすなよ。
きゃつは敢えてシングルクォートをつけて '\0' を値といったんだぞ?w
JIS規格じゃもろにそれをなる文字の表現とされているんだが?w
お前の場合、Aも値とか言いそうで怖いわ。Aは16進数では確かに値として
扱われることもあるが、文字と値をごっちゃにしてたら、Fまで値になって
E以降が文字になってそうだなw
907:デフォルトの名無しさん
07/05/15 07:51:55
〃∩ ∧_∧
⊂⌒( ・ω・) はいはいそのとおりそのとおり
`ヽ_っ⌒/⌒c
⌒ ⌒
908:JIS規格の逆斜線の話を持ち出した大ボケの最初の定義
07/05/15 07:53:22
747 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 03:30:52
なんか変な方向に行ってるみたいだな。
1. ヌル文字の値が '\0' なのは規格で決まってる。
2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
'\0' の値はどの環境でも厳密に 0 になる。
(そもそもそんな特別なエスケープシーケンスを用意してしまったら、
8 進数で 0 を埋め込むことが不可能になってしまう)
これでいいだろ、もう。
1. ヌル文字の値が '\0' なのは規格で決まってる。
^^^^^^^^^^^^^^^
表現はJIS規格でそうだが、値とは書かれていない。強いて値というならそれは0。
割り当てられている文字コードが0。あくまでも\にも0も文字、組み合わせてもそれらは
文字列という解釈はされど、C言語ではそれをエスケープシーケンスで使われる
表示できない文字を代用した文字コードが使われているって話であって
それらは値ではない。んじゃ、アラートとして使われるアラートの値は'\a'って言うかね?
こいつは \ の後ろに 0 があったんで、その数字に目がいってしまい、値と言ってしまったんだろうけど
それは0という文字であって値ではないんだよ。んじゃ、\a が値になるんかね?
これはどう見ても文字列であって、その組み合わせを代用して表示できない文字をあるように
使っているのさ。それが理解できないから大学未満レベルって言われるんだよw
909:デフォルトの名無しさん
07/05/15 07:53:26
#include <stdio.h>
char itoc(int i) {
if (i >= 0 && i <= 9)
return '0' + i;
else
return '\0';
}
int ctoi(char c) {
if (c >= '0' && c<= '9')
return c - '0';
else
return -1;
}
int main() {
int i = 9;
char c = '8';
printf("i(char):%c c(int):%d", itoc(i), ctoi(c));
return 0;
}
910:デフォルトの名無しさん
07/05/15 07:54:10
「文字として存在するか、数値として存在するか」なら計算機の中ではどちらも数値として存在していて、
「文字として扱うか、数値として扱うか」ならプログラム上での扱いによる
911:デフォルトの名無しさん
07/05/15 07:59:12
コンピュータ的には状態として存在しているような気もするが。
912:デフォルトの名無しさん
07/05/15 07:59:29
\a ビープ音(警報)
\b バック・スペース(後退)
\f フィード(書式送り)
\n 改行
\r キャリッジ・リターン(復帰)
\t 水平タブ
\v 垂直タブ
\' シングル・クォーテーション '
\" ダブル・クォーテーション "
\? ?
\\ バックスラッシュ \
さぁ、これらもそれぞれ 改行の値は '\n'、水平タブの値は '\t'って言うかね?
表示できない、エスケープ文字って俺は言うね。そう、それらには表示できる文字が
存在しないから、便宜上代用されているんであって、別にその\との組み合わせが値
って言うものにはなっていないんだよ。強いて値って言うなら、割り当てられている文字コードに
対してなら理解は出来るが。実際のところ、整数型の値として文字コードが格納されているしな。
文字そのものは数値としては存在しておらず、文字コード表から該当する、登録されている文字を
表示させる仕組みがあるんであって、実態は数値なのさ。だから敢えて文字コードを参照する
ソースを書いてやったのに、理解していないなんて・・・だめだな。
お前じゃ汎用電子計算機の仕組みについて学ぶのは無理だ。その仕組みの原理にのっとって
プログラムだって作られているんだが・・・
913:デフォルトの名無しさん
07/05/15 08:00:24
感じとしてはわかったけど、その「値」はCの規格票で
定義された用語ではないな。
914:デフォルトの名無しさん
07/05/15 08:03:52
もちっと 制御 文字について理解しましょーね、大学未満さんw
さて、今日は休みだがお前らには付き合ってられん。悔しかったら
どこでも良いとは言わないが、施設の整った大学にくらい通って勉強してみろ。
実際にその原理について習う実験や研究をした人間とじゃ格が違うぜ。
もちっと電子計算機の基本原理を理解してから出直せ。
文字データそのものは数値としては存在しないよ。文字だって人間が使っている文字みたく
見えるように視覚的にコンピュータが実装している範囲内の表現能力を用いて構成されてんだから。
915:ここでフレーム投下
07/05/15 08:04:14
printf("??[foo]??");としたら、期待通りの出力になりませんでした。
期待通りに出力させるにはどうしたらいいでしょう。
916:デフォルトの名無しさん
07/05/15 08:11:06
>>912
別にお前のポリシーなんて誰も聞いてないよ
917:デフォルトの名無しさん
07/05/15 08:11:55
#include <stdio.h>
int main() {
char str[] = "abcdefghijk";
for (unsigned int i = 0; str[i] != '\0'; ++i)
printf("%p:%x ", str+i, str[i]);
return 0;
}
918:デフォルトの名無しさん
07/05/15 08:13:58
( ´ω`)
919:デフォルトの名無しさん
07/05/15 08:15:36
(´ω`)
920:デフォルトの名無しさん
07/05/15 08:16:42
どっかのブログでも書かれてたが、ほんと質問者置いてけぼりで言い争いが続くなw
921:デフォルトの名無しさん
07/05/15 08:17:31
こっち見んな
922:デフォルトの名無しさん
07/05/15 08:18:16
\0の0が数値に見えちゃったんだろうね。これはその他の\aや\tのごとく
数値ではなく数”字”だから。\の後ろに数値を参照していると思ったんだろうね、可愛そうに。
どう考えてもそれも含めて\と組み合わされた文字列をエスケープ文字として代用しているだけです
ありがとうございますた。
923:デフォルトの名無しさん
07/05/15 08:19:10
>>920
fj的フレームですらないのが困り物だな。manだの規格書だの読めば済むことをグダグダと・・・
924:デフォルトの名無しさん
07/05/15 08:23:32
#include <stdio.h>
int main() {
int chs[] = {'\a', '\b', '\f', '\n', '\r', '\t', '\v',
'\'', '\"', '\?', '\\', '\0' };
for (unsigned int i = 0; chs[i] != '\0'; ++i)
printf("%x ", chs[i]);
putchar('\n');
int j = 0;
while (chs[j] != '\'') ++j;
while (chs[j] != '\0')
printf("%c ", chs[j++]);
return 0;
}
925:デフォルトの名無しさん
07/05/15 08:26:52
あほが一人だと哀れなだけだが、
あほが二人だと始末に負えないな
926:デフォルトの名無しさん
07/05/15 08:27:58
あほが三人集まったらどうなるんだろ
927:デフォルトの名無しさん
07/05/15 08:27:57
>>568が始まりか…
こんなに長文を書きながら密度がスカスカの議論を延々と…
928:デフォルトの名無しさん
07/05/15 08:36:24
延々と「俺的『値』の定義」を読まされるスレはここですか?
929:デフォルトの名無しさん
07/05/15 08:36:57
>>923
void に向かって``半角''の一言をだして, 引き際失った奴を思い出したよ...
# fj だけじゃないけどな, void + ``半角''
930:デフォルトの名無しさん
07/05/15 08:40:29
まぁエスケープシーケンスの話はもう良いや。はいはい、'\0'はナル文字の値ってことで良いよ。
俺も今後'\0'はナル文字じゃなくてなる文字の値って言ってあげるから。
それよりもさぁ、最近、里田まいが気になるんよ。俺、別に今までハロプロだのモー娘。だの
まったく興味がなったんだけどさ、クイズヘキサゴン2に出ている里田まいを見て
なんかこう、キュンッときたんよ。辻と違ってまだ処女だったらええのになぁ~なんて
期待しつつ、プログラミングをしているわけだ。そんな俺ってどうよ?C言語ならぬ
Cまでいけそうかな?
931:デフォルトの名無しさん
07/05/15 08:40:53
もまいら思い出してくれ。
文字と数値がメモリ上でも区別されてると思い込んでる人種がいるだろ。
COBOうあなにをするタテイスカンナニラセ@「
932:デフォルトの名無しさん
07/05/15 09:14:23
(´ω`)
933:デフォルトの名無しさん
07/05/15 09:25:34
こいつらが何か意味のある議論をしている・したがっていると勘違いするから混乱するんだよ。
レスを付けて何か返ってくるというリアルワールドでのコミュニケーションの代償行為をほぼ唯一の生きがいとしているだけなのに。
934:デフォルトの名無しさん
07/05/15 09:30:03
俺の周囲の場合リアルワールドの会話はこれより遥かにつまらんから困る
人の噂話、悪口、武勇伝等の自慢話ばっかりでうんざり
2chが悪口ばっかりとか生産性の無いネタばっかりって言える人は幸せ者
935:デフォルトの名無しさん
07/05/15 09:31:40
これは釣りに対して全力で釣られてみる遊び。
素人にはオススメできない。
936:デフォルトの名無しさん
07/05/15 09:32:56
おまいらじゃせいぜい2ちょんねるだな。日本語で
937:デフォルトの名無しさん
07/05/15 11:54:24
だめだこいつら…はやくなんとかしないと
938:デフォルトの名無しさん
07/05/15 12:01:11
>>1 乙
939:デフォルトの名無しさん
07/05/15 13:04:21
昨日今日あたりで一気にスレを消費しちまったな
940:デフォルトの名無しさん
07/05/15 13:20:05
開発環境はvc++2005 OSはxpです。現在研修でコマンドラインから
取得した引数で四則演算を行うプログラムを作成しているのですが、
オーバーフローのチェックで悩んでいます。
加算、減算については出来たのですが、乗算のオーバーフローチェックが
分かりません。limits.hをインクルードして2147483647~-2147483648
までの数値を扱っています。どのようなコードを書けばよいのでしょうか?
よろしくお願いします。
扱っている変数は
int lop; // 左のオペランドに入力する値
int rop; // 右のオペランドに入力する値
int result; // 計算結果
int mod; // 除算の余り
int max = INT_MAX; // 表現可能な最大値
int min = INT_MIN; // 表現可能な最小値
char *check; // 変換不可能な文字を格納
char op; // 入力する演算子
これらになります。ファイル名lop op ropの形式で
実行します。
941:デフォルトの名無しさん
07/05/15 13:29:02
long long 使っていいならラクチンなんだがなあ。
942:デフォルトの名無しさん
07/05/15 13:32:03
>>940
lop*rop (lop>0 rop>0)について調べる場合
lop>INT_MAX/rop のときオーバーフロー
負数とか考えると面倒だね
943:デフォルトの名無しさん
07/05/15 13:40:23
インラインアセンブラ使いてーなー。
944:デフォルトの名無しさん
07/05/15 13:42:04
掛け算のオーバーフローは難しそうだな。
n周まわって 結果が正のまま とかありえそうだし
945:デフォルトの名無しさん
07/05/15 13:48:36
>>940
マルチ乙。
加減算も自分でやったんじゃないんだろ?w
Hackmem とかhacker's delight で調べてみ。
日本語訳も出版されている。
946:デフォルトの名無しさん
07/05/15 13:51:21
掛け算だけにマルチ
いやスミマセン
947:デフォルトの名無しさん
07/05/15 13:53:30
掛け算を足し算のループに変えてオーバーフローを検出くらいしか思い浮かばん…
負数は先読み計算で。
948:デフォルトの名無しさん
07/05/15 13:59:21
MSBのbit位置テーブル作っといてlookupすりゃええんちゃうの?
949:デフォルトの名無しさん
07/05/15 14:02:51
レスありがとうございます。確かにlongが使えるといいのですが、使っちゃ駄目みたいです。ちなみに先ほどのコードを使用して動かしてみました。全ては試していないのですが、
-2147483648 * -1 = -2147483648や
2147483647 * -1 = オーバーフローと
なってしまいます。上はオーバーフローに下は
-2147483647になるようにしたいのですが、中々上手くいきません。
どうすればよいでしょうか?よろしくお願いします。
950:デフォルトの名無しさん
07/05/15 14:21:43
2進数のまま手計算してみれば?
途中経過のビットも出力して確認しながらやれよ。
951:デフォルトの名無しさん
07/05/15 14:28:25
これでダメな場合って lop==0 の時以外にあるかな?
result=lop*rop;
if(result/lop!=rop) オーバーフロー
952:デフォルトの名無しさん
07/05/15 14:54:12
>>951
っ lop=-1 rop=INT_MIN
953:デフォルトの名無しさん
07/05/15 14:56:41
>>940
加減算のオーバーフローチェックはどうやったの?
954:デフォルトの名無しさん
07/05/15 15:04:30
>>952
これやったら落ちてビビった (MacOSX 10.4.9 Intel Core 2 Duo)
955:デフォルトの名無しさん
07/05/15 15:11:19
>>954
>>952 で同じく落ちた (Win98SE C7 600MHz)
なんと言うか恐ろしい計算だw
956:デフォルトの名無しさん
07/05/15 15:29:19
>>952
これ反則だよなあ。普通の計算でも起こり得りそうで困る。
957:デフォルトの名無しさん
07/05/15 15:40:55
gccで落ちたコードの核になる部分だけ抽出。
--
movl $-2147483648, %eax
movl $-1, %ecx
idivl %ecx
--
うーん、-1で割っているだけなのに。
958:デフォルトの名無しさん
07/05/15 15:49:53
これは勉強になった。
959:デフォルトの名無しさん
07/05/15 15:53:22
>>952
C#でも落ちるかなと思ったけどOverflowExceptionが出るだけだった。
960:デフォルトの名無しさん
07/05/15 15:57:11
>>959
Exception をキャッチしてないからCだと落ちる っつーことっしょ
961:デフォルトの名無しさん
07/05/15 16:04:16
Instruction Set Reference の idiv の項を見てみた。
例外 #DE (divide error)
1. 除数が 0 の場合
2. 商が大きすぎる/小さすぎる場合
の、2. に引っかかってるみたいね。
アセンブラレベルで QWORD で使うなら十分起こりうる状況だけど、
int でやってる限りは -2147483648 / -1 でしか起こらないよね、これ。
こりゃ盲点だわ。
962:デフォルトの名無しさん
07/05/15 16:07:44
実数でも同じことできる?
963:デフォルトの名無しさん
07/05/15 16:14:23
どうでもいいけど、Linuxだと"Floating point exception"って出るんだよな。
どこがFloatingPointなんだか。
964:デフォルトの名無しさん
07/05/15 16:15:41
gcc@MacOSX でもそう出る。
イミフ。
965:デフォルトの名無しさん
07/05/15 16:15:56
>>962
起きなかった
966:デフォルトの名無しさん
07/05/15 16:18:14
実数は普通の演算で例外起きたっけ?
967:デフォルトの名無しさん
07/05/15 16:19:32
もう面毒せーから1/0=πという数学体系を新たに定義しようぜ
968:デフォルトの名無しさん
07/05/15 16:22:10
移項すると 1 = π × 0 になるんだけど
969:デフォルトの名無しさん
07/05/15 16:23:16
その定義上ではその移項自体がまた特殊な扱いになるのか。
970:デフォルトの名無しさん
07/05/15 16:47:17
>>963
English WikiからSIGFPEの項より
>Although SIGFPE does not necessarily involve floating-point arithmetic, there is no way to change its name without breaking backward compatibility.
971:デフォルトの名無しさん
07/05/15 17:50:56
可換環じゃなかったら最早普通の計算に使えないなw
972:デフォルトの名無しさん
07/05/15 18:17:22
次のような関数を作っていて、test3の直前でセグメントエラーが
出てしまい困っています。
R[]はintのポインタの配列で、疑似二次元配列です。
R[i]とy[]のなかで共通する数をR[i+1]に代入して、
最後に0を入れる関数です。
どうしてエラーが出るのか、誰か教えてください。
void katu(int *R[], const int i, const int y[]){
int a=0, b=0, k=0;
for(a=0; a<N; a++){
for(b=0; b<N; b++){
if(R[i][a] == y[b]){
print("test1\n");
realloc(R[i+1], sizeof(int)*(k+2));
printf("test2\n");
R[i+1][k] = y[b];
printf("test3\n");
k++;
}
if(y[b] <= 0)
break;
}
if(R[i][a] <= 0)
break;
}
R[i+1][k] = 0;
return;
}
973:デフォルトの名無しさん
07/05/15 18:20:50
>>972
reallocの戻り値捨ててどうするんだよ。
reallocが成功したら元の領域はアクセスできなくなる。
974:デフォルトの名無しさん
07/05/15 18:22:18
>>972
realloc()の使い方を勉強しろ。
それはさておき、一文字変数は判り難いだけだから止めた方がいいぞ。
#特に引き数iなんて、誤解してくれと言わんばかりだ。
975:デフォルトの名無しさん
07/05/15 18:24:42
i は for ループのカウンタ以外では使わないほうがいいかもw
976:デフォルトの名無しさん
07/05/15 18:32:47
一文字変数はカウンタくらいしか使わないな
977:デフォルトの名無しさん
07/05/15 18:32:48
aとかbをループ変数にするのはなんかいやだな。
978:デフォルトの名無しさん
07/05/15 18:34:57
(滅多に使わない)数式の実装ではまんま1文字変数使うこと多い
# コメントで参考書名+page 書いとくが
979:デフォルトの名無しさん
07/05/15 18:37:50
数式をコメントに入れておくなあ、そういう場合。
980:デフォルトの名無しさん
07/05/15 18:40:42
>>979
数行オーダーの数式なら、そうするほうが多いけどね。
RGB⇔HSV変換とかの 条件付な式だとコメント書きにくいねぇ (で、リファレンス書いて終了w)
981:デフォルトの名無しさん
07/05/15 18:48:04
こういうアルゴリズムでーす後はググれって感じでコメント書く。
982:972
07/05/15 19:18:53
>>973-974
ありがとうございます。
realloc(R[i+1], sizeof(int)*(k+2));
を、
R[i+1] = realloc(R[i+1], sizeof(int)*(k+2));
にしたら無事に動くようになりました。
結果が正しいかはこれから検討する所でありますが。
今回初めてreallocを使ってみたので、本当に間抜けなことをしていました。
重ね重ね、ありがとうございます。
変数についてですが、どうにもうまい名前の付け方が思い付きませんorz。
他の方のソースを読んで勉強していくしかないのでしょうか?
983:デフォルトの名無しさん
07/05/15 19:24:18
>>982
変数名を思いつけないと言うことは、書いているものが理解できていないか説明できないかのどちらかだろう。
前者は問題外だが、後者も社会人として必要な能力だ。「相手に伝える」ことを念頭に入れて、
変数の説明をする積もりで名前をつけてみるといい。
984:デフォルトの名無しさん
07/05/15 19:35:27
例えばこんな感じですね
int i
int love, you
985:デフォルトの名無しさん
07/05/15 19:39:59
>>984
あーそれは、愛のあるいい変数名だね。
って、違うでしょ。
986:972
07/05/15 19:42:35
>>983
「相手に伝える」ですか。心がけてみます。
どうもありがとうございます。
987:デフォルトの名無しさん
07/05/15 19:52:03
変数名なんて、それが何を入れとくための奴なのか分かるんならなんでもいいよ
988:デフォルトの名無しさん
07/05/15 19:58:41
VisualC++.NETならばC言語で.NETを使えますか?
989:デフォルトの名無しさん
07/05/15 20:11:54
いいえ。
VS2003ならMC++, VS2005ならC++/CLIでのみ.NETを使えます。
990:デフォルトの名無しさん
07/05/15 20:12:27
いいえ、専用に構文が拡張されたC++になります。
991:デフォルトの名無しさん
07/05/15 20:17:00
自前でホスティングすれば使えなくもないだろう。
992:デフォルトの名無しさん
07/05/15 20:28:25
// 次スレテンプレ
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
前スレ
C言語なら俺に聞け(入門篇) Part 12
スレリンク(tech板)
過去スレ
Part 1 スレリンク(tech板) Part 2 スレリンク(tech板)
Part 3 スレリンク(tech板) Part 4 スレリンク(tech板)
Part 5 スレリンク(tech板) Part 6 スレリンク(tech板)
Part 7 スレリンク(tech板) Part 8 スレリンク(tech板)
Part 9 スレリンク(tech板) Part 10 スレリンク(tech板)
Part 11 スレリンク(tech板)
993:デフォルトの名無しさん
07/05/15 20:29:05
関連スレ
C/C++の宿題を片付けます 86代目
スレリンク(tech板)
くだすれC言語(初心者用) Part.2
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 2
スレリンク(tech板)
はきだめC/C++下級者の質問箱 2
スレリンク(tech板)
関連リンク
C 関数検索 man on WWW
URLリンク(www.linux.or.jp)
初心者のためのポイント学習C言語
URLリンク(www9.plala.or.jp)
// ここまでテンプレ
994:気まぐれアナスイ
07/05/15 20:32:34
984 differ:char 5,6,7,8,9 line 4
!(Φ_Φ+){level}
995:デフォルトの名無しさん
07/05/15 20:33:11
Cスレ乱立しすぎ
こっちへ吸収されていいと思う
【初心者歓迎】C/C++室 Ver.37【環境依存OK】
スレリンク(tech板)l50
くだすれC言語(初心者用) Part.2
スレリンク(tech板)l50
996:気まぐれアナスイ
07/05/15 21:57:37
吸収も良いですが?
スレを、そちらに変更?
997:デフォルトの名無しさん
07/05/15 22:13:54
実行の様子をテキストファイルとして作成する方法を知りたいのですが、windowsの場合どうすればいいのでしょうか?
Linuxなら./program > text.txtとするらしいのですが、windowsの場合がわかりません
998:デフォルトの名無しさん
07/05/15 22:15:03
>>997
同じ事やってみた?
999:デフォルトの名無しさん
07/05/15 22:17:13
なぜ試さない?
1000:デフォルトの名無しさん
07/05/15 22:17:54
1000ゲット
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。