C言語なら俺に聞け( ..
[2ch|▼Menu]
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
Wikipedia項目リンク(%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は八進法で値を指定する

Wikipedia項目リンク
ん?八進法で値を指定?意味わかんねー。参考にできる文献やソースきぼんぬ。
文字コードの割り当てに何進法とか関係ないから。むしろ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
子供同士でサンタは居るか居ないかで喧嘩してたようです。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5222日前に更新/240 KB
担当:undef