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


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

C言語なら俺に聞け(入門篇) Part 12



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

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 ]
天災と思って諦めてる

742 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:13:02 ]
天才に向かって失礼な、めっ、めっめっ(猫をしかりつけるように)

743 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:17:53 ]
カス

744 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:18:01 ]
ハゲ



745 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:26:25 ]
ナルはナルシストのナルさぁ〜、決して成瀬川なるのなるではない。

746 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:26:33 ]
(´ω`)

747 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:30:52 ]
なんか変な方向に行ってるみたいだな。

1. ヌル文字の値が '\0' なのは規格で決まってる。

2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
  これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
  '\0' の値はどの環境でも厳密に 0 になる。
  (そもそもそんな特別なエスケープシーケンスを用意してしまったら、
  8 進数で 0 を埋め込むことが不可能になってしまう)

これでいいだろ、もう。

748 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:35:06 ]
>>747
だからぁ、NULL文字もちゃんとデータとして存在しているから
文字の終端を示す\0が入っているアドレスもちゃんと存在しているって話なんだが?
規格がどうとかじゃなくて、空文字でNULLが扱われていてもちゃんと文字データとして
存在して実態があるからNULLポインタの示す場所と勝手に解釈するなって話ナノーメートル

749 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:36:40 ]
アドレスがあるのは当たり前だろ。

750 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:37:54 ]
!(Φ_Φ+)
頑張っていますね?
source.を書きたい、のですが、
original.なのでとって置きます。


751 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:39:07 ]
あと、NULLポインタが示すオブジェクトに対してデータを表示させようとかするのは
どうも過去ログからしてタブーっぽい。指し示す場所がないゆえに、環境によっては
(null)とご丁寧に表示してくれているが、実体がないから何も表示できないのが当たり前だし。

752 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:42:19 ]
>>748
うーん、「NULL」が出てきたら脳内で「NULLポインタ」に置換しちゃう人?
>>747は全くNULLポインタについて言及してないよ。

だけどまあ、NULL文字ってのは誤解しやすいような気もするから、
終端文字と表現するのがいいんじゃねえのかなあ。

753 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:44:13 ]
NULL ポインタは参照しちゃいけない。
「あらゆる有効なアドレスと比較しても等しくならない」のが NULL ポインタの定義だから。

ただ、NULL 渡して表示させるという場合、
内部でポインタが NULL ならこれを表示・・・という分岐があるのなら問題ない。
参照してないから。

754 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:44:21 ]
彼は自分の知らないことに話が展開していくのを怖がってるんですよ



755 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:04 ]
おまいらほんっとにナルちゃんが好きなんだね ♥

756 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:50 ]
NULL 文字という表記は良くない。
NULL はヌルポインタを表すマクロ名を表すから、紛らわしい。
null 文字という風に小文字で書くならいい。

757 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:50 ]
>>749
いや、だからそれを勘違いしたのが >>580 なんだが、お前いい加減にしろ?
何歳だ?ゆとり教育世代か?寝ろやボケガキ

758 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:38 ]
>>580 みたいな無茶苦茶なのは、既に訂正するとかそういうレベルじゃないな。

759 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:39 ]
>>754
はいはい、すでに話がわかっているという証拠のソースも何度も提示しているのに
それすら自分の思い込みや勘違いで否定しているお前が論破されるのが怖くて
何も筋の通った意見がいえなくておびえているのはお前だろ?

760 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:51 ]
表記の問題じゃない

761 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:47:37 ]
怖がりすぎ

762 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:49:02 ]
「彼」って自分の事だと思ったの?
自覚してんのだなぁ。

763 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:49:15 ]
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。だから、NULL文字の値が\0とか話ではないが
値は \0 ではなく 0 だが?それすら間違ってんじゃん。
あくまでもエスケープシーケンス、 printf(""); の " " の中で使うときとかで用いられる
\n \t のように \ がついたものは値じゃないんだが?w

764 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:50:55 ]
んで、ことの本質は >>580 にある \0 あるいは NULL文字データが入っているところにも
ちゃんとアドレスが文字列の終わりに続いて割り振られているって説明に、なぁ〜〜に
ごちゃごちゃとわけのわからない言い掛かりをしてきているんだね?って言っているんだが?
いや、もうええわ。八進法とかわけのわからん話を絡めるし、気持ち悪いぜ?



765 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:08 ]
>>763
だからそこのどこにNULLポインタが出てくるの?

766 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:16 ]
NULL
ヌルポインタを表す単なるマクロ。
C では 0 あるいは ((void*)0) と定義される。

'\0'
ヌル文字。値の全てのビットが厳密に 0 となると規格で決められている。
この表記の場合、型は C では int 、C++ では char 。

0
数値の 0 でもあり、ヌルポインタでもある。
型は int ではあるが、値 0 になる定数式がポインタに代入された場合、
あるいはポインタと比較された場合は、ヌルポインタと解釈される。
その場合、その値のビットが全て 0 になるという保証はない。

767 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:19 ]
日本語でおk

768 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:54:30 ]
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
全くNULLポインタには言及してないんだよ。

769 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:55:13 ]
ヌル文字とヌルポインタは全くの別物ってのが分かってないのかねえ。

770 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:56:34 ]
>>763
分かってない奴がでしゃばるな

771 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:58:03 ]
あたいのこと、舐めたらいかんぜよ。
ちなみに \a \n \t \0 だのは文字であって値ではありませんので、あしからず。
それらを示す文字コードは値といってもまぁ差し支えないかもしれんけどね。
んじゃ、レベルの低い知ったかを相手にするのもここらでやめておいてやるわ。
まったく、本当に理解力のないどうしようもないやつっているんだなw
だからこの世はいつまでも頭の悪い奴が立場が悪くなってファビョって自暴自棄になるんだなw

772 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:59:23 ]
>771
自己紹介乙

773 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:59:46 ]
C++ の規格票(しかも 1998 年のドラフト)ですまんが、

null character (respectively, null wide character), whose representation has all zero bits.
ヌル文字(あるいはヌルワイド文字)、これは全てのビットが 0 の表現をとる。

>>771
\0 は文字だが '\0' は値だぞ。

774 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:00:23 ]
ということで



  NULL文字をNULLポインタと思いこんで延々暴れたバカがいた



ということでよいかな。まあ紛らわしいからその分は差し引いてあげるけどさ。



775 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:01:15 ]
>>774
よい

776 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:02:17 ]
ttp://ratan.dyndns.info/MicrosoftVisualC++/eskape.html
\がついたものはここでも説明されているように「文字」であって値には該当せず。
いわゆる制御文字ゆえに表示される文字とは別扱いだが
それらにも「文字コード」が割り振られている。その文字コードを
char型のデータに入れることで扱っているのだが、そこまで理解できないかなぁ
理解力のないお○カちん達ってw
だからNULL文字に対応するコードが0であって、\0は値じゃなくてNULL文字と言うべき。

777 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:03:07 ]
>>772
もうその程度のことでしか反論できないでしょ?おまえどこの学校出身だ?
まぁ、ランクE未満の大学でもなく大学未満なんでしょうね。
派遣のお仕事がんばってねぇ〜〜 ♣

778 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:03:25 ]
>>747 で \0 と '\0' を使い分けてるのが理解できないんだろうか。

779 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:04:19 ]
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。

780 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:05:45 ]
>>765
>>580
> ¥0  =値0 、アドレス無し
参照。ちなみに\0(NULL文字、空文字)に割り当てられているコードは0だが
\0自身は値ではなく「文字」ですから。

781 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:06:48 ]
\0が値だなんて誰か言ってたっけ

782 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:08:18 ]
まあ、'\0' も値が 0 になる整定数式だから
ヌルポインタとして扱おうと思えば扱えるけどね。
紛らわしいから絶対やっちゃいけないが。

783 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:09:01 ]
>>580 がクソなのは既に誰もが認めている終わった話題だ。

784 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:09:57 ]
580・・・
誰かがこんなのを擁護してるとでも思ったのかな



785 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:10:38 ]
必死に無意味な説明をしようとした奴がボロ出しまくりでワロスwwww
なんだよ、\0が値とか言っちゃっているやつ?あたいにそんな小細工
通用しないかんねぇ〜(スケバン恐子風に)
エスケープシーケンスは文字であって値ではない、これ定説。
ライフスペースでも定説。オウムには破防法(意味不明)

786 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:10:53 ]
int *p = 2 - 4 + 2;

これもヌルポインタ。

787 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:13:55 ]
>>747
1. ヌル文字の値が '\0' なのは規格
        ^^^^^^^^^^^^
対応コードが0ではあるが、NULL文字は値ではなく文字ってことな・ん・だ・が?
文字って値なんだぁ。それじゃぁ、char a[10]; a[0]='a';ってaって文字を入れるとき
値にAが入っちゃうのぉ〜〜?もはや値に有らず。
a[0]='\0';で空文字を入れることはあるけど、値で入れるなら '' とかつけずに
対応している文字コードを入れたらええんでな〜〜い?

788 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:14:12 ]
>>785
ヌル文字とヌルポインタは別物ってことはわかったの?

789 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:09 ]
自分の意味不明な筋の通らない理論を押し切ろうと、もう必死で
相手の筋の通った理論を屁理屈で解釈してつつこうと必死でしょ?
そんなんだから物事の本質が霞んでしまうんだよ。
路上を見てみろ?道路交通法をまともに守っている奴がいない、破っている奴らばかり
だから自分もそうする?それじゃ自分 も 道路交通法を理解していないと
道路交通法を知っている人に対して思われているだけだと気づくんだな。
警察の前じゃ違反は違反だぜ?キップ切られるぜ?免許傷つくぜ?
俺はまだ違反点数の累積は0だ。けど、違反点数も俺の免許もNULLじゃないぜ?

790 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:50 ]
もうぬるぽ('A`)

791 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:52 ]
「値が'\0'」と書いてあるんであって「値が\0」とは書いてないんだよ。

792 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:18:27 ]
>>788
あたりまえじゃん、っつーかそれをず〜〜〜っと昨日の>>580に対して言い続けてきたんだが?w
俺が理解していないと思ってんの?何回文字列の終端を示すNULL文字自身が入ったデータの
アドレスが存在していて、文字列の後ろの終端を示す部分がNULLポインタになっていないと説明したら
わかるんだと?鬱陶しいなぁ・・・

793 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:18:48 ]
なるほど。そこにつっこんでたのか。
「ヌル文字の値」は「ヌル文字の文字コード」の意味だが、
確かに紛らわしい表現ではあったな。

でも、それを言うなら、
>char a[10]; a[0]='a';ってaって文字を入れるとき
                ~~~~~~~~~~~~~~~~~~~~~~
>a[0]='\0';で空文字を入れることはあるけど、
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
もおかしいな。
「aの文字コードを入れるとき」、
「空文字の文字コードを入れることはあるけど」だな。

794 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:19:43 ]
>>791
だから \0 は値じゃなくて 文字 だっつってんだろ・・・説明だって出てんだろ。
その文字、NULL文字に該当する対応コードが 0 だっつってんの。
対応コードは \0 か? \0 って何進法?w



795 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:20:24 ]
>>792

763 名前:デフォルトの名無しさん [sage] :2007/05/15(火) 03:49:15
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。

796 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:21:28 ]
>>794
\0 は文字だけど '\0' は文字リテラルで値だろ!!!
何度言ったら分かるんだ!!!

797 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:22:38 ]
>>793
お前が >>736 の出力結果を理解していないことがわかった。もう黙ってろ。
文字型の変数に文字でなくても直接文字コードを入れても使えることが理解できてないんだな。
通りで話がわからないわけだw
なんか、俺がNULLポインタとデータの違いがわかってないみたいないわれ方しているが
さっきっから俺に対して曲解した考えで論破しようと必死こいている奴の方が
曲解しているだけあって理解していないのがバレてんだが・・・なんだよ \0 が値って?
あたいにはそんなの通用しないかんね!

798 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:04 ]
\0は値じゃない。
'\0'は値。

799 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:39 ]
この流れなら言える!お前ら全員ぬるぽ!(寝るぽ!)

800 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:57 ]
何というか日本語がこれほど通じないのは、もはや釣りだとしか思えない。

801 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:25:44 ]
>>797
C に「文字型」なんてありません。

802 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:26:02 ]
クォーテーションで括ってるか括ってないかの違いがまだわかってないな

803 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:26:21 ]
779 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 04:04:19
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。
↑こういうことしかいえなくなっているら。しかもこれは自分基準w
こういうのが鬱陶しいんだよな。だから何?としか言われない
間違いではないことを気にいらねーって罵倒してくる奴。
お前何様だよ?デジタル世界の王者か?欧米か!?
てめぇ基準なんてどうでも良い。検索してどっちが多く使われているか調べてから出直せw

804 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:27:12 ]
紛らわしいのにわざわざ大文字で書く理由が知りたい。



805 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:29:59 ]
>>773
値って言うならちゃんと演算子使って演算できんだろうな?
その\0(空文字)をどうやって演算すんだ?
文字データとしては表示すらされないってのにw
文字同士の計算でもあるの?Aを文字と扱うか16進数として値を10として扱うかでは大違いだろ
それすら理解していないなんて、どこの大学出身だ?あっ、大学未満か

806 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:30:55 ]
\0は値じゃないって言ってるでしょ

807 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:32:40 ]
本気で言ってるのか???

str[i] != '\0' は演算だろ?

そして printf("%d\n", '\0' + 3); がエラーにでもなると思ってるのか?

808 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:33:36 ]
なんで'\0'を勝手に\0に置き換えるかな。

809 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:35:06 ]
どう見ても釣りです。
本当にありがとうございました。

810 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:37:07 ]
結論出しておくわ。これは捻じ曲げようとしても無理。
\n \a \t \b \0 それらは文字であって値ではない。とりわけ制御文字といわれるものであって
値のように演算は不可能。
ttp://ratan.dyndns.info/MicrosoftVisualC++/eskape.html
でも説明されているように、文字(制御文字)であってそれらにも文字コードが割り振られていて
その文字コードなら割り振られているという事実を踏まえて、その文字の値として扱うことは可能。
ttp://www.psl.ne.jp/perl/pdojo00b.html
たとえば、AはASCIIコードでは16進数にて41(10進法では65)と指定されていて
コードに1を足すことによって66にした場合、その文字コードを参照して表示される文字は
ちゃんとBになるってのは >>736 を実行すりゃ一目瞭然。
実証、検証されているのにつまらない屁理屈を言う奴、だめぽ。

811 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:38:16 ]
>>808
もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w
値は\0よって、スケバン風に言ってなさいってこったでパンナコッタ。

812 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:38:47 ]
>もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w

もうオワタ\(^o^)/

813 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:39:40 ]
また、Bという文字に1を足すなんておかしい。文字コードに対してならおk。
Bに1を足すなんて、環境によっては文字列の追加として B1 と解釈されかねんよ。

814 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:40:29 ]
>>811
本気で分かってねえな・・・。
呆れてものも言えん。



815 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:42:23 ]
だめだこいつ

816 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:42:28 ]
最後まで自分の理解する頭のないことを露呈しつつ粘着乙。お前だけだよ、こんなところで
朝まで居残りしているのは。

817 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:45:46 ]
全くだ

818 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:48:26 ]
っと、最後までこんなスレで自分の間違いを必死こいて間違いじゃなかったことにしようと
ここでレスしている人に対して噛み付いてくるメガネデヴピッツァですた(・∀・)

819 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:49:14 ]


820 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:49:43 ]
もう放っとけ。

821 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:50:10 ]
うん

822 名前:デフォルトの名無しさん [2007/05/15(火) 04:50:33 ]
\0は値じゃなくて文字だよぉ〜〜、対応コードは0で値として扱えるけどな、ケケケw

823 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:07:05 ]
pc11.2ch.net/test/read.cgi/tech/1179025919/66
おーい、ちょうど良いや、ここでふぁびょ〜んなお前ら、これに答えてやれよw

824 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:13:38 ]
>>814
'\0'でもこれは制御文字であって値にあらず。何が言いたいかはっきりしろよ?
このスレってやっぱ分かってねーとかそことなく揺さぶるけど、結局
自分の意見を言わずに逃げるチキンが多いよな。この前もそう。
お前分かってないなみたいなことを言ったが、答えは fgets の中の文字数の指定に
255 と入力ミスをしたのをネチネチ陰湿にあおってきただけで、そいつ自身は
fgetsの使い方についてろくに答えず。入力ミスしたやつは間違いにしろ
参考にできるページを参照してたが、このスレのタイトルを理解しておらず
答える気がないくせに相手にだけくだらねぇ間違いを指摘する程度でここにいるなら
出て行った方がよくね?何、自分にとってイラつくものを見て気分を害したんだよ!みたいな
不満をわざわざいい掛かってくるのか、さっぱりわからねぇ。こんなところにいるくらいなら
車軸の壊れそうなジェットコースターにでも乗ったら?



825 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:26:00 ]
char a; に対して
a=0; a='\0'; はおkだが、前者は0という値、後者は明らかに文字データゆえに
\0は文字ではあるが値じゃないんだが、それすら理解していないのはどっちだぁ〜〜い?
NULLはWikiにも記録されているが、ゼロと区別するためのドイツ語で0を意味するnullを用いて
何もないを意味するが、null文字は表示される文字も何もない文字として扱われていて
割り当てられている文字コードは0だが文字そのものはアルファベットも数”字”も含めて
文字であって”値”ではない。\0 およびその他制御文字は表示されないけど文字であって
値ではない。あたいも値ではない。

826 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:27:21 ]
ようやく分かった。お前が何が分かってないかが。

char 型というのは CHAR_MIN〜CHAR_MAX の値を入れることの出来る整数型であって、
C には「文字型」なんて型はないんだよ。

827 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:28:20 ]
値だっていうなら a=\0; をやればいいさ。コンパイルエラー起こすけどな、ケケケ
誰かさん、敢えて\0と'\0'のシングルクォートを強調したが、それをつけてんなら
なおさら値じゃなくて文字データだよなぁ。まさか、値にわざわざ''をつけて代入してんのかーい?

828 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:30:20 ]
入れることの出来る、じゃないな。
表現することの出来る、だ。

829 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:31:05 ]
わかんねーなら調べろだの、調べてないだのを指摘するくらいなら
調べられる参考文献を参照しろってーの。ろくにそういうのも出さずに
ただ自分が思った(間違った)理論を提唱されても、お前が決めた仕様でも規格でも
ルールでもないだろって話で流されるよ。本来の基本概要を理解している、知っている人には
うそは通用しない。\0は制御文字であって値じゃない。あたいでもそんなことは分かっている。
勝手にありもしないことを定義しないでくれ。\0を文字コードで参照するなら0なら分かるし
文字データとして入れるのに '\0' で指定するなら分かるが、値じゃない。文字だ。
いつまでもモジモジしてんじゃねーぞ。

830 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:35:41 ]
C の規格票読め。
読むだけならタダだ。

831 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:38:34 ]
くどいようだが、すでに俺は証明、提示をした。制御文字は値ではなく
文字データ。文字コードによって割り当てられている文字データ。
その文字コードがあっても、コードに対応した文字データがなければ
文字コードを使ってもナンセンス。\0は便宜上使われている文字であって
これは値ではない。そして本来は表示されない制御文字も、便宜上
使えるようにと割り当てられている代用の文字があるだけであって
\a \n \t そのものは値ではなく制御 文 字 であーる。
そんなの当たり前なのに、なーーにが値だ、あたいにはそんな屁理屈、通用しないかんね。

832 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:40:08 ]
\0 はエスケープシーケンスで''か""の中に出てこないと意味がない。

833 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:43:31 ]
\0は代用で用いられている文字であって値ではない。値じゃない。
値に対しても定義が曖昧だが、みたまんま、\0 \a \t \n は制御文字として
代用で使われているものであり、数値ではない。数字だって場合によっては
数値ではなく数字(数の文字)として扱われるが、その数の文字に対してだって
文字コードが割り当てられているけど、数字のまんまの数値で文字コードは割り当てられて
いないのは、ASCIIコードの対応表を出漁するプログラムで一目瞭然。
そう、単に文字コードが割り当てられているんであって、文字そのものは
値じゃ〜〜ないんだよ。制御文字として代用されたものだけ特別扱いで値になっちゃうの?
それじゃ、アルファベットや数字も値?値じゃ〜ねぇなぁ、文字データは演算できんよ。
割り当てられた文字コードを数値として演算することは出来るけどな。
たとえばAに割り当てられている文字コード1を足してBにすることが出来るというのは
説明済み。だけど、Bに1を足すのは不可能。文字の結合として B1 としちゃう
環境や言語は存在するから、要注意。文字は文字データであって値にあらず、これ当たり前。

834 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:44:23 ]
#include <stdio.h>
int main() {
int a = 1;
a = '\0';
printf("%d", a);

return 0;
}



835 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:44:57 ]
長文になったが、制御文字の代用の \0 は値じゃなくて文字。モジモジ君だって
それくらい知ってるよ?割り当てられている文字コードと文字データをごっちゃにしないよう
今後は注意しましょうね♪ さっ、これにこりたらこんなところにいないで
とっととジェットコースターにでも乗って来い。頭がスカッとすっぜ?

836 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:54:03 ]
というかCでいう文字とは整数の一種でつまりは値なんだが。
と今更こんなことを言ってみるが、みんな寝ちゃったかなw

837 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:56:04 ]
文字定数

838 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:02:23 ]
眠いから寝る

839 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:11:24 ]
朝までやってたのか!

840 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:20:18 ]
 ___  見えませ〜ん
‖    |     ∨
‖現実 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  読めませ〜ん
‖    |     ∨
‖空気 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  知りませ〜ん
‖    |     ∨
‖常識 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  ありませ〜ん
‖    |     ∨
‖未来 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )   (  と)
凵    し`J   U U

841 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:20:28 ]
何やってんだお前ら?

842 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:24:22 ]
子供同士でサンタは居るか居ないかで喧嘩してたようです。

843 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:41:30 ]
C 規格票より
www.jisc.go.jp/app/JPS/JPSO0020.html
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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:50:52 ]
文字は値だな。



845 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:52:31 ]
だめだこいつ、制御文字は表示できる文字データじゃないから
便宜上代用されている\0 \a \n \tがあってもそれを値だと思っているよw
文字と値の違いが分からないからって、プログラムが出来ないわけじゃないから
安心しろ。だけどお前の頭じゃ限界が見えているから、言語の使用とか
電子計算機の仕組みにかかわらず大学で受ける授業にはついていけないだろうから
低学歴のまま人生を諦めろ。まぁ、学歴が高くなくても成功する人も稀にいるから
努力は怠らないこったね。つまらないことに労を費やしているうちに、老いていくし
元気もなくなるから、早いところ人生の積み重ねを始めておけ。
間違っても間違いを押し切ることはするな。\0 が値に見えるなら目じゃなくて頭が
どうかしているよ。

846 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:54:17 ]
規格表を見る限り、\0 \a \n \t は「c文字」であって「文字」ではない。

847 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:54:40 ]
>>844
ダウト。文字データそのものは電子計算機はもってないんだよ。
人間が文字として認識する形を示すものを、文字コードで対応させて
参照しているのが分からないみたいだね。所詮、大学未満の考える
つまらない浅はかな考えだな。大学で普通に習うから、まだ受験するチャンスがあるなら
がんばって大学に行きな。基本的には入学に年齢制限はないから。60過ぎても入学する人もいるし。

848 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:55:00 ]
×規格表
○規格票

849 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:55:50 ]
>>847
脳内定義はどうでもいいから >>843 の規格票を読め。

850 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:56:12 ]
>>846
制御文字の代用で使われている文字だと言っているんだが?
どう見ても値じゃなくて円マーク+文字の組み合わせの文字だろ。
いい加減馬鹿は市ねよ。うぜぇよ。値に対する概念もない馬鹿が

851 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:57:48 ]
>>850
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
「逆斜線表記」は「c文字」だ。

852 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:59:01 ]
>>849
いや、脳内じゃなくて書かれているまんま述べただけだが?
お前こそ理解しろよwwww
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
はい、自分で爆弾抱えたまま爆発させて自爆しちゃいましたね。
決定的な証拠。表現を使うであって値とは掛かれていません。
ちなみに、null文字のコードが0に割り当てられているのは事実だが
これは人間が決めたことであってもともと電子計算機がそれをそうだという
仕組みを持っていたわけじゃないんだよ。文字そのものが数値じゃないんだから。
いい加減、文字が人間が作ったものだと気づいてね。計算機がやっているのは
あくまでも0と1の組み合わせの演算。そのデータから文字データを参照して
表示する際に文字コードを使ってんだよ。大学レベルだから、専門学校以下は黙っててね。

853 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:00:10 ]
>>851
ええ、だからお前もしつこいなぁ。理解力のない馬鹿は失せろ。
俺がまず否定しているいのは \0 が値ということ。値じゃなくて
どこをどう見ても文字。お前はそれを敢えて c文字だと言ってるしw
値じゃなくて文字、それについては俺がすでに述べてるんだが?
ボケは市ねよ、低学歴w

854 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:00:50 ]
\0 は c文字。
'\0' は文字定数で値。



855 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:01:53 ]
>>854
残念ながら制御文字であって \0 は便宜上表示できない制御文字の代用で
使っている文字だ。値ではない。値について理解していない馬鹿は失せろwwww

856 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:02:30 ]
>>855
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
あ、構文規則の読み方も分からない低学歴なのか?

857 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:05:26 ]
こういう話題であげあしの取り合いになるのは宿命なのか

858 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:05:59 ]
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
くどいようだが自分で墓穴を掘ってそのままあの世へ行け。
二度と人間界に戻ってくるな。これが読めないなら日本語を勉強してから出直せ。
そこにある \0 は紛れもなく
\ と 0 を並べたそれぞれが文字であり、組み合わせて値としたものではない。
これ以上理解できない曲解しかしないやつは放置するね。
値じゃないのは事実。文字コードは便宜上人間が割り当てたもので
Aそのものが値を持つとかないから。AはA。人間が作った文字コード表に
電子計算機が持つ基本の数値を割り当てただけだから。

859 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:06:37 ]
とうとう規格票に文句付け出したよwwwwwwwwwwwwwwwwwwwwwwww

860 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:19 ]
盛り上がっていいじゃない

861 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:32 ]
>すべてのビットが 0 であるバイトをナル文字という。
これが見えないのか?

862 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:39 ]
char a=0; の a を %c で表示すると、というか表示はされないが空文字が参照される。
a='\0'; とした場合、明らかに文字データを使っているんであって
a=0; のような値は使われていない。ちゃんと文字データと値の違いを理解しましょーね
大学未満w

863 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:10:03 ]
>単純文字定数は、型 int をもつ。
>1 バイトの実行文字に対応する単一の文字を含む単純文字定数の値は、
>対応付けた文字の表現を整数として解釈した数値とする。
これも読めないのかな。

864 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:10:53 ]
誰かさんは制御文字の代用で使われている \ と 0 という2つの文字をくっつけると
値になっちゃうらしいよ?w どこをどう見ても \ も 0 もつなげても \0 という 文字 です
ありがとうございました。文字と値の違いが分からない痛い子は以後放置よろ。



865 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:11:16 ]
#include <stdio.h>

int main() {
char a = '\0';
printf("%s", a == 0 ? "'\\0' == 0" : "");
return 0;
}

866 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:12:24 ]
\0 は値じゃないと何度言えば分かるのか。

867 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:13:29 ]
規格票をまともに読めないキチガイを相手にしても無駄だな。

868 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:13:55 ]
c文字c文字うっせーよボケ。俺は値じゃなくて\0も文字だっつってんだよw
文字と値の違いも分からない弱い頭ってやーね、こいつぜってー最後は犯罪者になってんな
理解力がないのが自分だと気づいていない、判断力を失った麻薬中毒者のごとく

869 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:14:54 ]
まだやってたのか?


870 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:16:49 ]
引き際を失ったんだろうな・・・可哀想に。

871 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:17:06 ]
んでよぉ、本質はそんなことじゃないんだよ。null文字が入った場所にも
ちゃんとそのnull文字の文字コードが入ったデータを示すアドレスが入っているんであって
>>580がいう値0なのにアドレスなしってのが間違いって話なんだが?
何ここまで複雑に話をこじらせちゃってんだろうねw
これだから理解力のないやつは、何か相手の知ってなさそうなことを持ち出して
揺さぶろうとするんだけど、自分の理解力のなさが露呈されて墓穴を掘るんだよねw

872 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:18:05 ]
いつの間にかnull文字のnullが小文字になっててワロタw

873 名前:本日の自作自演擁護厨 mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:18:56 ]
>>580 の話はもうとっくに終わってるんだが・・・。



875 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:47 ]
C の規格では「文字」はビット列、すなわち数値であると規定されています。

>3.7.1 文字、1バイト文字
><プログラミング言語Cでの意味> 1バイトに納まるビット表現

876 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:52 ]
580が\0と書いたのが気にくわないんじゃないの。
ちゃんと'\0'と書け、と。
(でも、そうすると、854,855の対応が気になるわけだけど)

877 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:58 ]
まだやってたのか
そんな暇あるならバイトでもしろよ

878 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:20:46 ]
テレビ見ながらついでで相手してるだけだからどうでもいい。

879 名前:デフォルトの名無しさん [2007/05/15(火) 07:22:22 ]
>>843って結局 JIS 規格の話だろ?逆斜線ってのは、大学の授業で聞いたことあるけど
日本じゃもともと存在していなかったんで、¥(円マーク)をバックスラッシュの代用で
使ったって話で、それについて制御文字の表現を \ を前に用いる規格があるって話で
>>843 は文字が値とかって話じゃなくて、制御文字を日本では \ との組み合わせで
使われているって話でしょ?何勘違いして直接関係ない文献を勘違いしたという
意味の分からん説明をしているのか、理解不能だわ。

> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
これについてはあくまでも表現の仕方であって、値として使っているって話じゃないよ。
JIS規格におけるバックスラッシュの代用が \ って話だろw

880 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:25:56 ]
よくこんな釣りを思いつくよなあ。尊敬するぜ。

881 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:28:11 ]
\ がバックスラッシュで表示される環境で見てるものとして脳内変換しろよ。

882 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:28:38 ]
(´ω`)

883 名前:デフォルトの名無しさん [2007/05/15(火) 07:31:13 ]
ttp://okuyama.mt.tama.hosei.ac.jp/unix/C/slide19-1.html
でも書かれているけど、明らかに '\0' をナル文字といって値とは言っていない
敢えて値というならそれは 0。\0 でなくて敢えて '\0' というならなおさらそれ自身は値じゃなくて
なる文字。文字がなんなのか、どのように制御されているのか分からない馬鹿って困るな。
大学レベルじゃまずついていけない頭の持ち主か。何JIS規格のバックスラッシュの
代用について話をしてんねん、ボケが

884 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:31:46 ]
ちょっと哀れに思えてきたねw



885 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:32:16 ]
それは、5.2.1参考
「この規格で規定する基本文字集合の中の二つの要素
\と〜は、JIS X 0201では、それぞれ¥(円記号)と
 ̄(オーバーライン)に置き換える」
で既出なんだな

886 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:32:24 ]
バックスラッシュの代用の話なんて規格票に何も書かれていないんだが。
規格票読んでないのバレバレ。

887 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:34:02 ]
とうとうISO646にまでケチをつけるまで来たのか?

888 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:34:08 ]
>>886>>843 のレスの部分に、ということね。

889 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:35:54 ]
>883
文字定数が('A'とか'B'とか'\0'とか)が値を持たないといいたいわけ?

890 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:37:17 ]
「値」という言葉の定義すら怪しいな。
数値以外は値じゃねー、と考えてそうだ。

891 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:39:25 ]
#include <stdio.h>
#define TEST '\0'

int main() {
printf("%d", TEST);
return 0;
}

892 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:39:59 ]
もうここまで来ると理屈抜きで全面的に賛同して輪廻から解放してあげたいのだが
こだわっているポイントがイマイチ分からない

893 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:41:29 ]
暇な時に適当に遊んであげれば良いと思うよ。

894 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:08 ]
void main()
gets()
NULL
\0

他になんかあったっけ?



895 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:24 ]
>>894
fflush(stdin);

896 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:29 ]
でもそういうスレじゃないしな多分

897 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:59 ]
こいつの脳内計算機では「値」ってのと文字とが区別されてるんだよ、きっと。
メモリにタグビットかなんかがついてて。


898 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:44:51 ]
ttp://okuyama.mt.tama.hosei.ac.jp/unix/C/slide19-1.html
> 次は,エスケープ文字です。
> \a ビープ音(警報)

> # [例1]'\0':ナル文字
> # [例2]'\x00':ナル文字
エスケープ”文字”です。おまけにシングルクォートつきで '\0' ナル”文字”
どこにも値なんて書かれていましぇ〜〜〜ん。'\0'と敢えて表記するなら
なおさらナル”文字”であって値じゃありましぇ〜〜〜ん。そして
僕は死にましぇ〜〜ん、C言語あるから!

899 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:44:58 ]
>894
malloc&freeを忘れてもらっては困るな

900 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:45:19 ]
こういう奴は議論してる最中は絶対に認めないけど、
数日経つと「そんなの当たり前じゃないか」とか言い始めるタイプ。

901 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:20 ]
>>898
>>875

902 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:26 ]
>>897
お前の低レベルな頭じゃ文字と値の違いがなくて、数字の0として扱われている0も
値の0なんだろうねwwww 文字と値の違いが分かってないから、数字が入ったとき
数値との区別がついてねーようだな。お前、文字と数字の入り混じったデータを
扱ったこともない素人だろw

903 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:56 ]
おまえら夜通しやってたのか?

904 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:47:26 ]
このスレはかまってくれる人が多いね。
宿題スレじゃもう誰も相手しなくなったのに。



905 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:47:45 ]
面白いオモチャだからいじってみた。

906 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:48:30 ]
>>901
いや、モロニ表現って書いてあるやん。ところでさぁ、話をそらすなよ。
きゃつは敢えてシングルクォートをつけて '\0' を値といったんだぞ?w
JIS規格じゃもろにそれをなる文字の表現とされているんだが?w
お前の場合、Aも値とか言いそうで怖いわ。Aは16進数では確かに値として
扱われることもあるが、文字と値をごっちゃにしてたら、Fまで値になって
E以降が文字になってそうだなw

907 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:51:55 ]
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいそのとおりそのとおり
     `ヽ_っ⌒/⌒c
        ⌒ ⌒

908 名前:JIS規格の逆斜線の話を持ち出した大ボケの最初の定義 mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:54:10 ]
「文字として存在するか、数値として存在するか」なら計算機の中ではどちらも数値として存在していて、
「文字として扱うか、数値として扱うか」ならプログラム上での扱いによる

911 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:59:12 ]
コンピュータ的には状態として存在しているような気もするが。

912 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:59:29 ]
\a ビープ音(警報)
\b バック・スペース(後退)
\f フィード(書式送り)
\n 改行
\r キャリッジ・リターン(復帰)
\t 水平タブ
\v 垂直タブ
\' シングル・クォーテーション '
\" ダブル・クォーテーション "
\? ?
\\ バックスラッシュ \
さぁ、これらもそれぞれ 改行の値は '\n'、水平タブの値は '\t'って言うかね?
表示できない、エスケープ文字って俺は言うね。そう、それらには表示できる文字が
存在しないから、便宜上代用されているんであって、別にその\との組み合わせが値
って言うものにはなっていないんだよ。強いて値って言うなら、割り当てられている文字コードに
対してなら理解は出来るが。実際のところ、整数型の値として文字コードが格納されているしな。
文字そのものは数値としては存在しておらず、文字コード表から該当する、登録されている文字を
表示させる仕組みがあるんであって、実態は数値なのさ。だから敢えて文字コードを参照する
ソースを書いてやったのに、理解していないなんて・・・だめだな。
お前じゃ汎用電子計算機の仕組みについて学ぶのは無理だ。その仕組みの原理にのっとって
プログラムだって作られているんだが・・・

913 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:00:24 ]
感じとしてはわかったけど、その「値」はCの規格票で
定義された用語ではないな。

914 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:03:52 ]
もちっと 制御 文字について理解しましょーね、大学未満さんw
さて、今日は休みだがお前らには付き合ってられん。悔しかったら
どこでも良いとは言わないが、施設の整った大学にくらい通って勉強してみろ。
実際にその原理について習う実験や研究をした人間とじゃ格が違うぜ。
もちっと電子計算機の基本原理を理解してから出直せ。
文字データそのものは数値としては存在しないよ。文字だって人間が使っている文字みたく
見えるように視覚的にコンピュータが実装している範囲内の表現能力を用いて構成されてんだから。



915 名前:ここでフレーム投下 mailto:sage [2007/05/15(火) 08:04:14 ]
printf("??[foo]??");としたら、期待通りの出力になりませんでした。
期待通りに出力させるにはどうしたらいいでしょう。

916 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:11:06 ]
>>912
別にお前のポリシーなんて誰も聞いてないよ

917 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:13:58 ]
( ´ω`)

919 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:15:36 ]
(´ω`)

920 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:16:42 ]
どっかのブログでも書かれてたが、ほんと質問者置いてけぼりで言い争いが続くなw

921 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:17:31 ]
こっち見んな

922 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:18:16 ]
\0の0が数値に見えちゃったんだろうね。これはその他の\aや\tのごとく
数値ではなく数”字”だから。\の後ろに数値を参照していると思ったんだろうね、可愛そうに。
どう考えてもそれも含めて\と組み合わされた文字列をエスケープ文字として代用しているだけです
ありがとうございますた。

923 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:19:10 ]
>>920
fj的フレームですらないのが困り物だな。manだの規格書だの読めば済むことをグダグダと・・・

924 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:26:52 ]
あほが一人だと哀れなだけだが、
あほが二人だと始末に負えないな

926 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:27:58 ]
あほが三人集まったらどうなるんだろ

927 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:27:57 ]
>>568が始まりか…
こんなに長文を書きながら密度がスカスカの議論を延々と…

928 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:36:24 ]
延々と「俺的『値』の定義」を読まされるスレはここですか?

929 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:36:57 ]
>>923
void に向かって``半角''の一言をだして, 引き際失った奴を思い出したよ...
# fj だけじゃないけどな, void + ``半角''


930 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:40:29 ]
まぁエスケープシーケンスの話はもう良いや。はいはい、'\0'はナル文字の値ってことで良いよ。
俺も今後'\0'はナル文字じゃなくてなる文字の値って言ってあげるから。

それよりもさぁ、最近、里田まいが気になるんよ。俺、別に今までハロプロだのモー娘。だの
まったく興味がなったんだけどさ、クイズヘキサゴン2に出ている里田まいを見て
なんかこう、キュンッときたんよ。辻と違ってまだ処女だったらええのになぁ〜なんて
期待しつつ、プログラミングをしているわけだ。そんな俺ってどうよ?C言語ならぬ
Cまでいけそうかな?

931 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:40:53 ]
もまいら思い出してくれ。
文字と数値がメモリ上でも区別されてると思い込んでる人種がいるだろ。
COBOうあなにをするタテイスカンナニラセ@「

932 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:14:23 ]
(´ω`)

933 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:25:34 ]
こいつらが何か意味のある議論をしている・したがっていると勘違いするから混乱するんだよ。
レスを付けて何か返ってくるというリアルワールドでのコミュニケーションの代償行為をほぼ唯一の生きがいとしているだけなのに。

934 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:30:03 ]
俺の周囲の場合リアルワールドの会話はこれより遥かにつまらんから困る
人の噂話、悪口、武勇伝等の自慢話ばっかりでうんざり
2chが悪口ばっかりとか生産性の無いネタばっかりって言える人は幸せ者



935 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:31:40 ]
これは釣りに対して全力で釣られてみる遊び。
素人にはオススメできない。

936 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:32:56 ]
おまいらじゃせいぜい2ちょんねるだな。日本語で

937 名前:デフォルトの名無しさん [2007/05/15(火) 11:54:24 ]
だめだこいつら…はやくなんとかしないと

938 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 12:01:11 ]
>>1

939 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:04:21 ]
昨日今日あたりで一気にスレを消費しちまったな


940 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:29:02 ]
long long 使っていいならラクチンなんだがなあ。

942 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:32:03 ]
>>940
lop*rop (lop>0 rop>0)について調べる場合
lop>INT_MAX/rop のときオーバーフロー
負数とか考えると面倒だね

943 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:40:23 ]
インラインアセンブラ使いてーなー。

944 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:42:04 ]
掛け算のオーバーフローは難しそうだな。
n周まわって 結果が正のまま とかありえそうだし



945 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:48:36 ]
>>940
マルチ乙。
加減算も自分でやったんじゃないんだろ?w

Hackmem とかhacker's delight で調べてみ。
日本語訳も出版されている。


946 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:51:21 ]
掛け算だけにマルチ


いやスミマセン

947 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:53:30 ]
掛け算を足し算のループに変えてオーバーフローを検出くらいしか思い浮かばん…
負数は先読み計算で。

948 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:59:21 ]
MSBのbit位置テーブル作っといてlookupすりゃええんちゃうの?


949 名前:デフォルトの名無しさん [2007/05/15(火) 14:02:51 ]
レスありがとうございます。確かにlongが使えるといいのですが、使っちゃ駄目みたいです。ちなみに先ほどのコードを使用して動かしてみました。全ては試していないのですが、
-2147483648 * -1 = -2147483648や
 2147483647 * -1 = オーバーフローと
なってしまいます。上はオーバーフローに下は
-2147483647になるようにしたいのですが、中々上手くいきません。
どうすればよいでしょうか?よろしくお願いします。



950 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:21:43 ]
2進数のまま手計算してみれば?
途中経過のビットも出力して確認しながらやれよ。

951 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:28:25 ]
これでダメな場合って lop==0 の時以外にあるかな?
result=lop*rop;
if(result/lop!=rop) オーバーフロー

952 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:54:12 ]
>>951
っ lop=-1 rop=INT_MIN

953 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:56:41 ]
>>940
加減算のオーバーフローチェックはどうやったの?

954 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:04:30 ]
>>952
これやったら落ちてビビった (MacOSX 10.4.9 Intel Core 2 Duo)



955 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:11:19 ]
>>954
>>952 で同じく落ちた (Win98SE C7 600MHz)

なんと言うか恐ろしい計算だw

956 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:29:19 ]
>>952
これ反則だよなあ。普通の計算でも起こり得りそうで困る。

957 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:40:55 ]
gccで落ちたコードの核になる部分だけ抽出。
--
movl $-2147483648, %eax
movl $-1, %ecx
idivl %ecx
--
うーん、-1で割っているだけなのに。

958 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:49:53 ]
これは勉強になった。

959 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:53:22 ]
>>952
C#でも落ちるかなと思ったけどOverflowExceptionが出るだけだった。

960 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:57:11 ]
>>959
Exception をキャッチしてないからCだと落ちる っつーことっしょ

961 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:04:16 ]
Instruction Set Reference の idiv の項を見てみた。

例外 #DE (divide error)

1. 除数が 0 の場合
2. 商が大きすぎる/小さすぎる場合

の、2. に引っかかってるみたいね。
アセンブラレベルで QWORD で使うなら十分起こりうる状況だけど、
int でやってる限りは -2147483648 / -1 でしか起こらないよね、これ。
こりゃ盲点だわ。

962 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:07:44 ]
実数でも同じことできる?

963 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:14:23 ]
どうでもいいけど、Linuxだと"Floating point exception"って出るんだよな。
どこがFloatingPointなんだか。

964 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:41 ]
gcc@MacOSX でもそう出る。
イミフ。



965 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:56 ]
>>962
起きなかった

966 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:18:14 ]
実数は普通の演算で例外起きたっけ?

967 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:19:32 ]
もう面毒せーから1/0=πという数学体系を新たに定義しようぜ

968 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:22:10 ]
移項すると 1 = π × 0 になるんだけど

969 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:23:16 ]
その定義上ではその移項自体がまた特殊な扱いになるのか。

970 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:50:56 ]
可換環じゃなかったら最早普通の計算に使えないなw

972 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:20:50 ]
>>972
reallocの戻り値捨ててどうするんだよ。
reallocが成功したら元の領域はアクセスできなくなる。

974 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:22:18 ]
>>972
realloc()の使い方を勉強しろ。

それはさておき、一文字変数は判り難いだけだから止めた方がいいぞ。
#特に引き数iなんて、誤解してくれと言わんばかりだ。



975 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:24:42 ]
i は for ループのカウンタ以外では使わないほうがいいかもw

976 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:47 ]
一文字変数はカウンタくらいしか使わないな

977 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:48 ]
aとかbをループ変数にするのはなんかいやだな。

978 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:34:57 ]
(滅多に使わない)数式の実装ではまんま1文字変数使うこと多い
# コメントで参考書名+page 書いとくが

979 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:37:50 ]
数式をコメントに入れておくなあ、そういう場合。

980 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:40:42 ]
>>979
数行オーダーの数式なら、そうするほうが多いけどね。
RGB⇔HSV変換とかの 条件付な式だとコメント書きにくいねぇ (で、リファレンス書いて終了w)

981 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:48:04 ]
こういうアルゴリズムでーす後はググれって感じでコメント書く。

982 名前:972 mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:24:18 ]
>>982
変数名を思いつけないと言うことは、書いているものが理解できていないか説明できないかのどちらかだろう。
前者は問題外だが、後者も社会人として必要な能力だ。「相手に伝える」ことを念頭に入れて、
変数の説明をする積もりで名前をつけてみるといい。

984 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:35:27 ]
例えばこんな感じですね

int i
int love, you



985 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:39:59 ]
>>984
あーそれは、愛のあるいい変数名だね。
って、違うでしょ。

986 名前:972 mailto:sage [2007/05/15(火) 19:42:35 ]
>>983
「相手に伝える」ですか。心がけてみます。
どうもありがとうございます。

987 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:52:03 ]
変数名なんて、それが何を入れとくための奴なのか分かるんならなんでもいいよ

988 名前:デフォルトの名無しさん [2007/05/15(火) 19:58:41 ]
VisualC++.NETならばC言語で.NETを使えますか?

989 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:11:54 ]
いいえ。
VS2003ならMC++, VS2005ならC++/CLIでのみ.NETを使えます。

990 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:12:27 ]
いいえ、専用に構文が拡張されたC++になります。

991 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:17:00 ]
自前でホスティングすれば使えなくもないだろう。

992 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:28:25 ]
// 次スレテンプレ

C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 12
pc11.2ch.net/test/read.cgi/tech/1178620766/

過去スレ
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/
Part 11 ttp://pc11.2ch.net/test/read.cgi/tech/1176800483/

993 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:29:05 ]
関連スレ
C/C++の宿題を片付けます 86代目
pc11.2ch.net/test/read.cgi/tech/1165718021/
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/

関連リンク
C 関数検索 man on WWW
www.linux.or.jp/JM/
初心者のためのポイント学習C言語
www9.plala.or.jp/sgwr-t/

// ここまでテンプレ

994 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 20:32:34 ]
984 differ:char 5,6,7,8,9 line 4
!(Φ_Φ+){level}



995 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:33:11 ]
Cスレ乱立しすぎ
こっちへ吸収されていいと思う

【初心者歓迎】C/C++室 Ver.37【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1178432985/l50
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/l50

996 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 21:57:37 ]
吸収も良いですが?
スレを、そちらに変更?

997 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:13:54 ]
実行の様子をテキストファイルとして作成する方法を知りたいのですが、windowsの場合どうすればいいのでしょうか?
Linuxなら./program > text.txtとするらしいのですが、windowsの場合がわかりません

998 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:15:03 ]
>>997
同じ事やってみた?

999 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:13 ]
なぜ試さない?

1000 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:54 ]
1000ゲット

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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