07/05/13 10:27:06
#include <stdio.h>
#include <string.h>
int main(void) {
char *name[12] = {"Mutsuki","Kisaragi","Yayoi","Uzuki",
"Satsuki","Minazuki","Fuzuki","Hazuki",
"Nagatsuki","Kannazuki","Shimotsuki","Shiwasu"};
char **p;
int i;
p = name;
for(i = 0;i < 12;i++){
printf("%2d月:%s(%d)\n",(i + 1),strlen( *p ),*p); /* ① */
printf("%2d:%s\n",strlen(*p),*p); /* ② */
++p;
}
return 0;
}
今、ポインタのポインタを使って文字数を数える練習問題やっているのですが
①のprintf文を実行するとDos窓が強制終了してしまいます。
デバックの時にエラーは出ないのですが・・・なにが間違っているのでしょうか。
②の方は普通に出力できます。
Visual C++ 2005 Express Editionを使っています。
409:デフォルトの名無しさん
07/05/13 10:38:24
>>407
コンピュータサイエンスの基礎をやれ。
四則演算を論理素子でどうやって実現するか知れば
くだらない疑問を抱かずにすむ。
410:デフォルトの名無しさん
07/05/13 11:02:22
>>408
printf("%2d月:%s(%d)\n",(i + 1),strlen( *p ),*p);
%2d = i+1
%s = strlen(*p) ←
%d = *p ←
411:デフォルトの名無しさん
07/05/13 11:08:34
どうやって、論理素子で計算するんですか。
16進数に置き換えてするんだとは思いますが、すごく疑問です。
2×4=8とか、8÷2=4を論理素子で計算する。
すごく難しいと思います。
412:408
07/05/13 11:15:59
>>410
あああ!逆だった
ありがとうございます!
413:デフォルトの名無しさん
07/05/13 11:36:28
>>411
本屋に行って"CPUの仕組み"みたいな本買ってこい
あとは加算器で調べてみるとか
414:デフォルトの名無しさん
07/05/13 11:47:10
>>411
2 << 2
8 >> 1
415:デフォルトの名無しさん
07/05/13 12:40:23
剰余はどうするんすか?
スタック使って割られる数-商*割る数って演算するんですか?
416:デフォルトの名無しさん
07/05/13 13:43:31
ファイル操作のとこでreturn(-1);の意味がさっぱり。
417:デフォルトの名無しさん
07/05/13 14:57:20
>>415
掛け算と割り算は加減算で表現できるだろ
単純に何回も引いていって引けなくなればそれが余り
2進数で桁上がり下がりフラグ使って同じようにやればできる
筆算で(2進数)割り算やるときとほとんど同じ あとは本買って嫁
>>416
return(-1);はよくエラーチェックに使う
-1が返ってきたらファイル開けなかったということになってるとおも
418:デフォルトの名無しさん
07/05/13 14:58:24
変数を使わずに1+2の計算結果を出すにはどのようなプログラムを組めばいいのでしょうか
419:デフォルトの名無しさん
07/05/13 15:04:32
printf("%d",1+2);
420:デフォルトの名無しさん
07/05/13 15:04:42
>>418
こういうこと?
printf("%d\n", 1 + 2);
421:デフォルトの名無しさん
07/05/13 15:05:48
演算子、変数と来たから次は何だろう
422:デフォルトの名無しさん
07/05/13 15:06:39
関数を使わずに(ry
423:デフォルトの名無しさん
07/05/13 15:08:56
C言語を使わずに(ry
424:デフォルトの名無しさん
07/05/13 15:10:33
頭を使わずに(ry
425:デフォルトの名無しさん
07/05/13 15:20:20
>>417ありがとうございます
426:デフォルトの名無しさん
07/05/13 15:35:27
30年とか表示するとき
int a;
a = 30年;
printf("%d",a);
でやると、年が邪魔っぽくて表示されない
どうやればいいの~?
427:デフォルトの名無しさん
07/05/13 15:37:35
printf("%d年", a);
428:デフォルトの名無しさん
07/05/13 15:39:42
表示以前にコンパイルできないのでは????
429:デフォルトの名無しさん
07/05/13 15:40:53
>>428
だから結果として年が邪魔で表示されないんだろう。初心者苛めんな。
430:デフォルトの名無しさん
07/05/13 15:41:45
せめて教科書読めよっていう質問ばっかりきてるなぁ
431:デフォルトの名無しさん
07/05/13 15:47:30
とうとう>>424の問題が出てきたか
432:デフォルトの名無しさん
07/05/13 16:04:10
一般的な入門書やりおわったけど、次はどんなステップを踏めばいいですか?
433:デフォルトの名無しさん
07/05/13 16:05:13
>>432
目標は何?
434:デフォルトの名無しさん
07/05/13 16:07:29
自分一人で基礎知識の応用が出来るようにすることかな。
処理速度とかも視野に入れた上で。
なんかテキトーに自作ツール作ってみるとか。
435:デフォルトの名無しさん
07/05/13 16:08:14
>>434は>>432へのレス
436:デフォルトの名無しさん
07/05/13 16:09:20
>>432
この世界は片っ端から全部覚えてたらキリがないから
ちゃんと自分がなにをやりたいのか見定めて進んで行かんと、
無駄に多大な労力を費やすことになるぞ。
437:デフォルトの名無しさん
07/05/13 16:09:22
作りたいもん作ればいいと思うぜ
438:デフォルトの名無しさん
07/05/13 16:12:40
>>434
自分で C のプリプロセッサでも作ってみたら?
確か以前、"未踏"でも採択されたことがあったはず。
439:デフォルトの名無しさん
07/05/13 16:33:39
Socket,データベース,文字列処理(正規表現含む)
これらができると幅がぐっと広がる…っていうか基本
後はアイデア次第
440:デフォルトの名無しさん
07/05/13 16:34:35
かなり意欲はあるのですが…やはりいろいろとオリジナルのアプリケーション・ソフトウェアを作ってみたいです。やはりそーゆー本を買っていろいろやってみるべきですか?
441:デフォルトの名無しさん
07/05/13 16:36:13
本を買う必要はないが、色々やってみるべきだろう。
442:デフォルトの名無しさん
07/05/13 16:38:52
>>439の中でまず文字列処理からやってみては?
とっつきやすいと思うよ。
ネットにも入門サイトとかいっぱいあるし。
443:デフォルトの名無しさん
07/05/13 16:41:18
入門書に文字列処理についての事が無かった様に思うのでお聞きします。文字列処理は初耳です。
444:デフォルトの名無しさん
07/05/13 16:42:23
>>440
作りたいものがあるならさっさと作ってみるのが吉
やってるうちに技術もついてくる
445:デフォルトの名無しさん
07/05/13 16:44:04
>>443
>入門書に文字列処理についての事が無かった様に思うのでお聞きします
strcpy() も文字列処理だと思うが?
446:デフォルトの名無しさん
07/05/13 16:44:16
現実問題Cで作るべきアプリなんて存在しないのが辛いな
447:デフォルトの名無しさん
07/05/13 16:45:51
みなさんご親切に…大変ありがたいです。ちなみに、みなさんはどのようなプロセスで、今のC言語のプログラミング力まで力を伸ばされたんですか?簡易的に話して頂けたらいいのですが…
448:デフォルトの名無しさん
07/05/13 16:47:17
ゲームプログラミングをやってみては?
囲碁・将棋・チェス・オセロとかね。
Cで作るのが最適。
449:デフォルトの名無しさん
07/05/13 16:50:23
>>447
宇宙からの電波
>>448
オセロなら6行で作ってた神がいたな
450:デフォルトの名無しさん
07/05/13 16:51:01
>>448 やはりそうしようかなと思います。Cで作るべきアプリケーションがそんなに存在しないようならば
451:デフォルトの名無しさん
07/05/13 16:51:53
自分は将棋が趣味で、自分より強い将棋プログラムを作ろうという目標があったから勉強した。
将棋プログラムってハッシュテーブルとかリストとかソートとかビット演算とか、
基本的なアルゴリズムが各所にちりばめられてるから勉強にはいいテーマだと思う。
452:デフォルトの名無しさん
07/05/13 16:52:40
>>450
>Cで作るべきアプリケーションがそんなに存在しないようならば
これって、どういう意味だと思っている?
453:デフォルトの名無しさん
07/05/13 16:56:43
>>452 C言語にはその点ではあまり需要がないものかと…
454:デフォルトの名無しさん
07/05/13 16:57:15
>>450
あとはOSに興味あるならLinuxのソース読んでみるとか
学ぶのは自分で作ってみたり本読むか知っている人に聞く
プログラミング力のうちの知識はそれで十分だが英語できるかどうかで
足りない知識の吸収率が変わってくる(最先端の知識・アルゴリズムなど)
あとは経験で補えるが数学力のあるなし(知識じゃなく頭良いかどうか)
でどこまで伸びるかが変わる
455:デフォルトの名無しさん
07/05/13 17:06:48
勉強のためにCの勉強してるなら
標準ライブラリのクローン(strcpy, strcat, printf, ...)と
UNIX系コマンドラインツール(cp, tail, head, sort, ...)のクローンを片っ端から作っていくと勉強になる。
サイズも小さいし、答え合わせ用のソースコードも(あまり初学者向けとは言いがたいが)あるし。
まあほとんど糞つまらん苦行に近いがコーディングは楽しいし一番無駄がないだろう。
456:デフォルトの名無しさん
07/05/13 17:08:09
うーん、自分はまだ、配列、構造体、ポインタ、ファイル操作、関数の作り方、変数、if文、switch文、for文、while文、をやってきたとゆう感じです。
457:デフォルトの名無しさん
07/05/13 17:10:47
>>456
じゃ、もう少し実践的な奴やってみたら?
URLリンク(www.kumei.ne.jp)
とか参考にしてウインドウ開いてみたりさ。
458:デフォルトの名無しさん
07/05/13 17:15:36
バブルソートを用いて
構造体に対して、データが格納された構造体配列を
学生証番号で降順にソートする関数sortIDと
点数で降順にソートする関数sortEngを作成しなさい。
データの入力は、関数input_seiseki_pを呼び出して行い、
次に「どちらで整列しますか(1:学生証番号、2:点数):」と表示し
その入力により関数sortIDと関数sortEngを選択肢、その結果を
関数seisekiを使って表示する関数meinを作りなさい
上記の問題において私なりに途中まで作ってみたのですが、
ここから先がわかりません。。
どなたかお知恵を拝借させて下さい
URLリンク(kansai2channeler.hp.infoseek.co.jp)
↑途中まで作ったソースです。
よろしくお願いします。
459:デフォルトの名無しさん
07/05/13 17:17:41
もういっかい違う入門書を買ってみろってことですか?
460:デフォルトの名無しさん
07/05/13 17:40:37
>>458
どこがどうわからないのかkwsk
学校とかのレポートなら解答出すわけにいかんし
>>459
>>457じゃないがおまえちゃんと>>457のリンク先見てみたのか?
簡単なデータペースやゲームの作り方も内容にあるだろ
それとも全部わかってるのかこの内容?
461:デフォルトの名無しさん
07/05/13 17:47:38
まぁ、猫が妥当かどうかは問題だがな。
462:デフォルトの名無しさん
07/05/13 17:48:44
ちゃんと見てませんでした。ごめんなさい。
463:デフォルトの名無しさん
07/05/13 18:10:29
URLリンク(www.geocities.jp)
のページにあるローレンツのプログラムをコンパイルしようとしたのですがエラーがでて出来ませんでした
開発環境に問題があると思うのですが、原因がよくわからないのでご教授願います
windowsXPでソフトは「C言語を始めよう!」、コンパイラはBorland C++ Compiler 5.5です
そのままコピペしてコンパイルするとエラーメッセージが(rktest.cはファイル名)
------ コンパイル開始 ------
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
rktest.c:
エラー E2140 rktest.c 17: ここでは宣言はできない(関数 main )
警告 W8057 rktest.c 57: パラメータ 't' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 57: パラメータ 'z' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 66: パラメータ 't' は一度も使用されない(関数 f2 )
警告 W8057 rktest.c 75: パラメータ 't' は一度も使用されない(関数 f3 )
*** 1 errors in Compile ***
------ コンパイル終了 ------
と出ます
スレ違いのような気がしますが、該当スレが見つからなかったのでここで質問させていただきました
464:デフォルトの名無しさん
07/05/13 18:18:13
>>463
そのコードはANSI Cに準拠していない。
FILE *output; の行を main 関数の先頭に持ってくるといいよ。
465:デフォルトの名無しさん
07/05/13 18:39:02
4つくらいのデータを1つのノードとして
そのノードを2二次元配列の1文字分のように扱いたいんですけど、
構造体を設定して
strcut ABC{
char
char
char
};
struct ABC data[][];とできますかね?
466:デフォルトの名無しさん
07/05/13 18:40:59
struct ABC data[ ][ ];です
467:デフォルトの名無しさん
07/05/13 18:41:17
なんでやってみないの?
468:デフォルトの名無しさん
07/05/13 18:42:18
いややったんだけどセグメンテーションエラーだから
無理なのかと。
469:デフォルトの名無しさん
07/05/13 18:44:16
>>468
コンパイルできないはずだけど
470:デフォルトの名無しさん
07/05/13 18:45:21
>>469
どういう意味ですか?
471:デフォルトの名無しさん
07/05/13 18:46:05
>>468
コード貼ってみろよ。中途半端に省略しないで。
472:463
07/05/13 18:47:21
>>464
回答ありがとうございました
警告は消えませんでしたが、エラーが消えて無事コンパイルすることができました
この警告は無視しても問題ない範囲なのでしょうか?
原因を把握していらっしゃるのでしたらお伺いしたいのですが
473:デフォルトの名無しさん
07/05/13 18:48:14
>>472
使ってない仮引数を教えてくれてるだけ。無視しても問題はない。
474:デフォルトの名無しさん
07/05/13 18:49:44
>464
コンパイラがANSI Cに対応してないんでねーの?
475:463
07/05/13 18:50:31
重ね重ねのご親切ありがとうございました
476:デフォルトの名無しさん
07/05/13 18:51:37
>>474
ANSI Cでは変数はブロックの先頭のみで宣言できる。
bccはANSI準拠。
477:デフォルトの名無しさん
07/05/13 18:54:07
struct ABC
{
char name[10];
char initial[10];
char home[10];
};と構造体を設定
struct ABC data[10][10];
int i,j;
for(i=0;i<10;i++){
for(j=0;j<10;j++){
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
}
}
一部ですけども、その二次元配列の中身の全ての各部門の初期化をしたいのですけど
この時点でセグメンテーション違反がおきるわけです。
478:デフォルトの名無しさん
07/05/13 18:55:21
strcpy(data[i][j].initial,NULL);
strcpy(data[i][j].home,NULL);です
479:デフォルトの名無しさん
07/05/13 18:57:10
馬鹿だろ。
strcpy(data[i][j].name, "");
480:デフォルトの名無しさん
07/05/13 19:04:35
>>479
ありがとさん
481:デフォルトの名無しさん
07/05/13 19:07:04
まあ
data[i][j].name = '¥0';
ってやった方がいいとは思うけど初期化だから別にいいか。
482:デフォルトの名無しさん
07/05/13 19:07:45
うわ。間違い
data[i][j].name[0] = '¥0';
こう
483:デフォルトの名無しさん
07/05/13 19:54:50
大学でC言語を習っています。
ifやforといった基本的なことは理解しているつもりである程度プログラムは書けます。
今、アルゴリズムの授業を受けているのですがポインタや構造体が理解できません。
参考書に載っているソースを自分で打ち込んで実行したり、少し変えたりしているのですがどうも暗記っぽくなっています。
そのため「○○をポインタと構造体を利用して作れ」と言われても何からしたらいいかわからない状態で。
ポインタや構造体はC言語で一番重要と言われているので是非自分のものにしたいです。
皆さんはどうやってポインタや構造体を理解していきましたか?
484:デフォルトの名無しさん
07/05/13 19:57:33
サンプルコードをいくつか読めばそれで理解できた。
485:デフォルトの名無しさん
07/05/13 20:10:22
使ってりゃ理解できた
486:デフォルトの名無しさん
07/05/13 20:11:48
>>483
わからないところは図を描いて理解。
デバッガで全変数表示してつながり・変化を確認。
487:デフォルトの名無しさん
07/05/13 20:12:40
くそなげえプログラム書いてたら飯なんてどうでも
よくなって4時間経過w
488:デフォルトの名無しさん
07/05/13 20:30:41
さっき構造体での二次元配列はどのようにすればいいのかを聞いたものですけど
その二次元配列data[i][j]において
1行さすのはdata[i]でいいのはわかるのですけど
1列をさすのはどうおけばいいですかね?
489:デフォルトの名無しさん
07/05/13 20:44:39
基礎からやり直せ
490:デフォルトの名無しさん
07/05/13 20:46:59
>>488
列は無理。
491:デフォルトの名無しさん
07/05/13 20:47:08
>>488
メモリの配置を想像してみろ。
列は分断されていて連続したメモリとしてアクセスする方法はない。
492:デフォルトの名無しさん
07/05/13 20:57:08
>>483
ポインタのイメージがつかめない場合はその都度アドレスと中身を表にして書いて理解
ポインタpのpと*pと&pの違い,あるいは変数aのaと*aと&aの違いが
わかっていれば大丈夫のはず
なぜポインタが必要かっていう設計思想を知りたければアセンブラとかを
学んでみるといいいかも
>>488
他の言語なら実装されてたりするけど
C言語ではそういう便利な機能は基本的に用意されてない
493:デフォルトの名無しさん
07/05/13 23:12:11
転職してプログラマになりたいんだ。
そのためにCとC++をマスターしたいんだが…。
それで今は一応C言語の基礎を終わらせたんだけど
C言語で関数やアルゴリズムやAPIなども覚えてから
C++行ったほうがいいのかな?
それとも先にC++でオブジェクト指向とか把握してから
いろんなこと手を出した方が良いかな?
494:デフォルトの名無しさん
07/05/13 23:15:29
さっさとC++池
今時Cなんてほとんど使わないからC++からCのコードを利用する際の最低限の知識さえあれば十分。
495:デフォルトの名無しさん
07/05/13 23:16:05
ぶっちゃけ経験年数のが大事。
マの真っ当な評価なんてマ以外に出来るわけがないんだから。
496:デフォルトの名無しさん
07/05/13 23:22:16
あらためてアルゴリズムを考えてみると
その列であてはまるのは1つだから
列指定にしなくてよかった。
497:デフォルトの名無しさん
07/05/13 23:23:21
>>494
Cは使わないのか
じゃC++の勉強にいこうかな
まだCでコードとか書けないけど大丈夫かな・・・
>>495
年齢が30前後とかだと未経験じゃプログラマになるの難しいかな?
498:デフォルトの名無しさん
07/05/13 23:29:01
>>497
おまいさんはマ板にお逝き。
499:デフォルトの名無しさん
07/05/14 00:00:23
>>497
どんなプログラムの仕事がしたくてどんな会社かによる
なんか実用的(ゲームでもいい)なプログラムひとつでも組んでると
就職のときにアピールにはなる
とりあえずマ板へ池
500:デフォルトの名無しさん
07/05/14 01:50:07
プログラムの処理がどの程度完了しているのかを示すことを試みたのですが,
うまくいきませんでした.具体的には,以下のことをしました.
#include<stdio.h>
int main(){
int i, j;
for(j=0; j<10000; j++){
for(i=0; i<100000; i++){
}
if((j%1000)==0)printf("*");
}
printf("\n");
return(0);
}
j が10000ループされますが,1000ループごとに * を1つ出力し,
* が10個になったら処理完了を知らせるというものです.
上のソースコードのようにしてみたところ,j のループを出てから
* が10個同時に表示されてしまいます.
どのように書けばよいのでしょうか?お願いします.
501:デフォルトの名無しさん
07/05/14 02:02:37
>500
ちゃんとjのループの途中で*が表示されてるけど?
ただ、1000個ごとなら(i%j)==999だろう。
502:デフォルトの名無しさん
07/05/14 02:07:08
バッファフラッシュしなきゃいけないとかそーいう問題じゃないの?
環境は?
503:デフォルトの名無しさん
07/05/14 02:09:42
ANSI C準拠だったら整数の範囲って32767までじゃなかった?
504:デフォルトの名無しさん
07/05/14 02:16:56
>>500
for(i=0; i<100000; i++){
i 使って無いじゃんwwww
ワロタw
505:デフォルトの名無しさん
07/05/14 02:18:50
int に10000も入れれませんwww
基本からやり直せよwww
506:デフォルトの名無しさん
07/05/14 02:19:42
>>500
if((j%1000)==0){ printf("*"); fflush(stdout); }
という話か?
507:デフォルトの名無しさん
07/05/14 02:20:26
>>504-505
釣りにしても ひどい
508:デフォルトの名無しさん
07/05/14 02:22:24
C とC++ の違いを分かってない人がいっぱいいるので一応書いておく
Cの構造体には変数しか設定できないのですが
C++は構造体の中に関数を入れれます。それがクラスって呼ばれるものです
C++でヤリなされw
509:デフォルトの名無しさん
07/05/14 02:23:17
何かの処理の進捗状況を表示する部分について質問してるんでしょ。
単にその処理の部分は省略しただけなんじゃないか?
510:500
07/05/14 02:25:02
>>501-508
レスありがとうございます.
>>502さん及び>>507さんのもので,求めていた結果を得ることが出来ました.
これからfflushをググってみます.
>>504-505が釣りかどうかすら分からない自分が悔しいです.
勉強に励みます.ありがとうございました.
511:デフォルトの名無しさん
07/05/14 02:26:59
進捗状況ってさ
ソースに
printf("処理○○終わり");
って書いていけばいいんじゃないの?
完成したら消せばいいわけだし
512:デフォルトの名無しさん
07/05/14 02:28:26
だからfflushはだめだってw
513:デフォルトの名無しさん
07/05/14 02:30:15
ほかっとけ
初心者だぞ相手はwww
514:500
07/05/14 02:31:20
>>509
実際は処理内容が含まれますが,それとは別に処理内容を全部消したもの
(>>500そのもののソースファイル)を作成して実行しても * が一度に出力された
ので質問をしにきました.
>>511
1試行で数分かかる繰り返し計算処理なので,何%終了したのかを概数でも
良いから表示させたかったのです.
>>512
駄目なのですか??
515:デフォルトの名無しさん
07/05/14 02:32:26
マロックにサイズオブ使わずそのまま数字書いてるとか
goto使いなんだろうよ
516:デフォルトの名無しさん
07/05/14 02:33:37
>>514
目的が達成できたんならそれで問題ないよ
環境依存だから、他の環境に持っていくことがあるなら問題だけど
517:デフォルトの名無しさん
07/05/14 02:34:10
つうかさ
関数の再帰使わなかったら 処理スピードなんか大して変わらんよ
何千万行でも数行でも・・・
518:500
07/05/14 02:37:48
>>516
今の環境のみで動かすものなので
これで大丈夫です.皆さん,ありがとうございました.
519:デフォルトの名無しさん
07/05/14 02:50:38
お ま い ら 難 し く 考 え す ぎ
520:デフォルトの名無しさん
07/05/14 02:58:24
>>508
クラスの肝は派生できる事。
派生無しにクラスを語っても意味がない。
521:デフォルトの名無しさん
07/05/14 03:01:07
C++はスレ違い
522:デフォルトの名無しさん
07/05/14 03:05:30
>>516の言ってる環境依存ってfflushの事か?
確かに入力ストリームに対するfflushは未定義動作だが
出力ストリームに対しては正常に機能したと思うが違ったか?
523:デフォルトの名無しさん
07/05/14 03:08:10
お前ら
もう質問者はいなくなったぞw
524:デフォルトの名無しさん
07/05/14 03:16:47
rand()で作った変数を
for()等でループにかけることって
実際問題 どうゆう場合ですか?
525:デフォルトの名無しさん
07/05/14 03:17:47
頭の悪い質問に頭の悪い回答者
このスレほんとゴミ化したな・・・
526:デフォルトの名無しさん
07/05/14 03:23:18
>>512
中途半端な知識でゴミ回答するんじゃないよ
527:デフォルトの名無しさん
07/05/14 03:30:23
じゃあ 頭のいい質問しましょw
関数のポインタと、配列のポインタ等の置き場が勝手に割り付けられると聞いたのですが
実際はどのように割り付けてるんですか?
出来ればコンパイル自体のソースをもちいて答えていただきたいと思います
528:デフォルトの名無しさん
07/05/14 03:31:25
>>524
質問の意味がよく分からんが
10体の敵がそれぞれランダムに動く場合とか?
529:デフォルトの名無しさん
07/05/14 03:32:34
>>527
メモリの話か?
530:デフォルトの名無しさん
07/05/14 03:33:24
>>527
ポインタの置き場って何?
コンパイル自体のソースって何?
531:デフォルトの名無しさん
07/05/14 03:34:03
おーい!機械語読める奴探してるらしいぞw
532:デフォルトの名無しさん
07/05/14 03:34:55
メモリの割付だおw
533:デフォルトの名無しさん
07/05/14 03:39:15
よーわからんな
関数が置かれるアドレスの話か? なぜそこでポインタが出てくるんだ?
配列も置かれるアドレス? なぜ普通の変数じゃなくてわざわざ配列?
ローカルとグローバルによっても違うし
もうちょっと問題を整理してくれんか
534:デフォルトの名無しさん
07/05/14 03:47:40
>>527
そんなもん環境依存だろ・・・
535:デフォルトの名無しさん
07/05/14 03:49:24
【内容】浮動小数点型(float、double等)を使用せず整数型(int)のみを使用し
「√」計算を行える計算機を作る
【どこが分からないのか?】全部wごめん
【どうして欲しいのか】代わりにソースを書いて欲しい
536:デフォルトの名無しさん
07/05/14 03:51:40
宿題は帰れ。
最近の学校は開平も教えないから困る。
537:デフォルトの名無しさん
07/05/14 03:53:53
開平ってなんですか?
538:デフォルトの名無しさん
07/05/14 03:55:44
ググれ
539:デフォルトの名無しさん
07/05/14 05:58:55
>>537
波平の双子の兄さんだよ。
540:デフォルトの名無しさん
07/05/14 06:53:39
>>537
灘、駒場、麻布と並ぶ名門です。
541:デフォルトの名無しさん
07/05/14 09:26:01
C >>>>>>>>>>>>>>>>> C++
C++は究極の中途半端言語
542:デフォルトの名無しさん
07/05/14 09:40:57
C++に挫折したそうです
543:デフォルトの名無しさん
07/05/14 13:59:59
>>535
intしか「√」内に入らないということでよろしいか?
544:デフォルトの名無しさん
07/05/14 14:01:04
>>543
お前意味が分からんw
整数しか入らないか?って聞けよwww
545:デフォルトの名無しさん
07/05/14 14:07:39
一番簡単な整数「9」を計算し「3」を出すプログラムを作りソースを書け
話はそこからだw
546:デフォルトの名無しさん
07/05/14 14:48:06
そのまえにルートがなんなのか学んだほうがいいw
547:デフォルトの名無しさん
07/05/14 14:58:35
>>535
確認だが正整数の間違いじゃないか?
そうでないとしたら複素数使わんと駄目だぞ
548:デフォルトの名無しさん
07/05/14 15:00:21
0でも問題ないだろ。
549:デフォルトの名無しさん
07/05/14 15:00:56
出題者がアホなのか質問者がアホなのか。
後者だろうけど。
550:デフォルトの名無しさん
07/05/14 15:01:52
宿題野郎にヒントなんて与えなくていいよ。
551:デフォルトの名無しさん
07/05/14 15:02:58
負数を与えたら死ぬようにすりゃいいじゃん。
552:デフォルトの名無しさん
07/05/14 15:03:41
>>548
おまえひょっとして-9は整数に入らないとか思ってないよな?
553:デフォルトの名無しさん
07/05/14 15:04:17
>>552
0は正整数に入らないと思ってる。
554:デフォルトの名無しさん
07/05/14 15:04:54
>>552
おまえひょっとして0は正整数入るとか思ってないよな?
555:デフォルトの名無しさん
07/05/14 15:06:58
負数が入っても絶対値の平方根に i つけりゃいいだけじゃん。
556:デフォルトの名無しさん
07/05/14 15:11:16
おk 言い直し 非負整数でおk
557:デフォルトの名無しさん
07/05/14 15:14:10
誤爆にレス付けてるアホどもってよっぽどやることがないんだね。
558:デフォルトの名無しさん
07/05/14 15:15:51
つか整数か非負整数いずれにしてもなんで出題者はそんなのに限定してるんだ?
実数じゃなにか問題があるのか?
559:デフォルトの名無しさん
07/05/14 15:17:35
ヒント:宿題
560:デフォルトの名無しさん
07/05/14 15:20:01
>>557
どのレスが誤爆なんだ?
ちょっとよく分からん
561:デフォルトの名無しさん
07/05/14 15:22:14
宿題スレのテンプレに似てると思ったんじゃないか?
562:デフォルトの名無しさん
07/05/14 15:30:15
宿題スレってはじめて見てみたがひどいな
写し放題じゃねーかwwww
先生は宿題スレもチェックしとくべきだなw
563:デフォルトの名無しさん
07/05/14 15:34:55
してるんじゃない?
そうでなくとも、まったく同じ答えが複数きてたらばれるだろう
564:デフォルトの名無しさん
07/05/14 15:38:04
教授からここの宿題スレを使うなと警告が来た例もあるらしいよ
565:デフォルトの名無しさん
07/05/14 15:40:44
そういうことするやつってそのへんは抜かりなくて少し変えてたりする
普段の態度や小テストで理解度見てたらだいたい自分でやったかどうか想像付くんだけど
さすがに人数多いといちいちチェックするのはめんどくさいw
院生に採点まかせっきりだったりもするからな
566:デフォルトの名無しさん
07/05/14 15:41:00
うざい
567:デフォルトの名無しさん
07/05/14 15:43:56
でも先輩友人の繋がりで写すのはどこでも常態化してるだろ。
それのネット版だ。
大してかわらんだろ。
568:デフォルトの名無しさん
07/05/14 17:37:23
char a[5] = "unko"
どこにNULLが入っていますか?
6個目?
569:デフォルトの名無しさん
07/05/14 17:38:08
何でデバッガ使わないの?
570:デフォルトの名無しさん
07/05/14 17:42:01
>>568 |壁|д゚) あのさ 教科書きちんと読もうよ
NULLと¥0と0の違いをきちんと理解しろw
571:デフォルトの名無しさん
07/05/14 17:43:59
>>568
先頭を一個目と数えて五個目にNUL文字が入っている。六個目は存在しない。
572:デフォルトの名無しさん
07/05/14 17:44:58
NULL 値アドレスなし、値0、ポインタの値として使用できる
\0 値アドレスなし、値0
0 値アドレス有り、値0
573:デフォルトの名無しさん
07/05/14 17:51:17
値アドレスって何ですか?
574:デフォルトの名無しさん
07/05/14 17:52:04
イミフな空白はなんですか?
575:デフォルトの名無しさん
07/05/14 17:54:28
>>572
あなたはなにをいいたいんですか
576:デフォルトの名無しさん
07/05/14 17:55:53
>>535
問題の趣旨を考えてみたw
10/3を計算すると3.33333333333333333・・・・と続くが小数点以下が増えていけば4という端数が発生する
COBOLでやれよと言いたいwなぜにcでww
577:デフォルトの名無しさん
07/05/14 17:57:07
URLリンク(www.psl.ne.jp)
ちっちっち、なんか勘違いしていないかね?NULLポインタとNULL文字とはまた別物だよ?
578:デフォルトの名無しさん
07/05/14 18:08:59
>>577
出力形式が、紙への印刷しかなかった時代が有ることを説明しないと無理でしょw
579:デフォルトの名無しさん
07/05/14 18:12:36
>>578
いやいや、そうじゃなくて、NULLといってもポインタと文字とは別物だってことなんだが?
580:デフォルトの名無しさん
07/05/14 18:13:10
>>572
正確に言えば
NULL=値無し、アドレス有り
¥0 =値0 、アドレス無し
0 =値0 、アドレス有り
だけどねw
581:デフォルトの名無しさん
07/05/14 18:13:58
何で初心者が回答したがるんですか?
582:デフォルトの名無しさん
07/05/14 18:15:13
>>580 イミフw
アドレス無かったら値入れれませんがw
583:デフォルトの名無しさん
07/05/14 18:16:35
文字配列をNULLポインタに指定するのと、文字配列の中にNULL文字を入れるのとでは
ぜんぜん意味が違うということさ。前者はまだ文字列を指定するアドレスが指定されいない
何もないところを示しているが、後者は文字列の中にNULL文字だけでも入っていれば
空ではあるが文字列(の先頭)を示すアドレスは存在しているよん。
584:デフォルトの名無しさん
07/05/14 18:17:23
>>580
志村ーーー、上の2つのアドレスありなしは逆逆w
585:デフォルトの名無しさん
07/05/14 18:17:37
あの・・・
かなり前に関数で配列の数を数えたいといった(内積を計算したいと)ものなんですが
NULLになるまでcount++するというプログラムならいけるかなと思いまして。
ぬるぽっていうのは、char型のアドレス限定ですか?
586:デフォルトの名無しさん
07/05/14 18:19:29
そもそも「¥0」ってなんだ?
好意的に解釈して「\(バックスラッシュ)0」の心算なんだろうけど、
'\0'と書かないと意味を持たない希ガス。
587:デフォルトの名無しさん
07/05/14 18:20:34
>>580
アドレスの有無ってなんだよ
いかなる値でも記憶領域に属していればアドレスはあるし、
そうでなければアドレスはないだろ。
588:デフォルトの名無しさん
07/05/14 18:21:49
#include <stdio.h>
int main(void) {
char *a=NULL,*b={"\0"},*c={"0"};
printf("%p : %s \n",a,a);
printf("%p : %s \n",b,b);
printf("%p : %s \n",c,c);
return 0;}
これの出力結果を見れば一目瞭然だよ
589:デフォルトの名無しさん
07/05/14 18:26:10
>>588マジレス乙
590:デフォルトの名無しさん
07/05/14 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。
591:デフォルトの名無しさん
07/05/14 18:30:33
>>590
とりあえずaを表示する部分を消して下の2つは確認できる?
592:デフォルトの名無しさん
07/05/14 18:31:00
>>590
ゴメンよ なぜか知らんがコンパイルできて出力できてしまったよw
593:デフォルトの名無しさん
07/05/14 18:32:46
>>588の出力結果は、俺んとこ(WinXP , BCC使用)でやったら
00000000 : (null)
0040A128 :
0040A12A : 0
っと表示された。
594:デフォルトの名無しさん
07/05/14 18:33:23
(nil) : (null)
0x80484cc :
0x80484ce : 0
595:デフォルトの名無しさん
07/05/14 18:34:16
>>585
ガッ
いや、char型のアドレスだけじゃなく他の型でもNULLはある。
charとかchar[]はNULL文字と深くかかわってるけどNULL文字とNULLポインタは全く別物。
NULL文字は文字列の最後に終端記号として置かれる物。
NULLはポインタがどこも指してない事を示す記号として色んな型のポインタ変数に入れられる物。
596:デフォルトの名無しさん
07/05/14 18:34:37
0x0 : (null)
0x402000 :
0x402002 : 0
597:デフォルトの名無しさん
07/05/14 18:42:21
こういうアホ連中がそのうち社会に解き鼻垂れるのかと思うと
陰鬱な気持ちになるな・・・
598:デフォルトの名無しさん
07/05/14 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw
599:デフォルトの名無しさん
07/05/14 18:45:45
>>598
> return NULL;
いっ、いぃ~~のか?
600:デフォルトの名無しさん
07/05/14 18:46:08
コンパイルとおりませんでした。
601:デフォルトの名無しさん
07/05/14 18:47:09
$ gcc -xc -
#include <stdio.h>
int main(void)
{
printf("てすつ");
return NULL;
} ^D
<stdin>: In function ‘main’:
<stdin>:5: 警告: return makes integer from pointer without a cast
$ ./a.out
てすつ
$ echo $?
0
602:デフォルトの名無しさん
07/05/14 18:48:01
>>597=>>286
とか上からものを言っているあほなお前がすでに社会に出ている方が怖い
603:デフォルトの名無しさん
07/05/14 18:51:37
ヒント
マは人格障害者の宝庫w
604:デフォルトの名無しさん
07/05/14 18:52:38
俺に聞け スレで 俺に聞くなよ って態度は何様だよ?w
605:デフォルトの名無しさん
07/05/14 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう
606:デフォルトの名無しさん
07/05/14 18:57:22
>>605
> やってみよう
何が目的?何が言いたい?はっきりしろ、うっとうしい
607:デフォルトの名無しさん
07/05/14 18:57:37
そういう阿呆なこと教えるから、阿呆プログラマが量産されるわけだ。
608:せんしぇ~ ◆cNsKLREitk
07/05/14 19:01:47
はい。
コンパイルのはじき方が理解できましたか?
609:デフォルトの名無しさん
07/05/14 19:02:46
我ら幼い人類に 目覚めてくれと 鼻垂れた~
610:デフォルトの名無しさん
07/05/14 19:10:28
>>608
もしかして、そういうの面白いと思ってる?
611:デフォルトの名無しさん
07/05/14 19:11:49
ぜんぜん
612:デフォルトの名無しさん
07/05/14 19:12:05
605 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう
ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう
613:デフォルトの名無しさん
07/05/14 19:25:59
>>608のが面白いとは思わないけど
>>612みたいなのも面白いとは思わない
614:デフォルトの名無しさん
07/05/14 19:28:09
>>613 自己擁護乙。お前つまんねっ、初心者を見ていらつくくらいなら
こんなスレに来るなよw お前みたいな気持ち悪い基地外に回答なんて求めてねーよボケ
俺は初心者じゃなくて回答する側だけどなw
615:デフォルトの名無しさん
07/05/14 19:29:07
んで、さっきっからこいつも何?せめて自分の使用環境くらい書けようぜぇ
600 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:46:08
コンパイルとおりませんでした。
590 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。
616:デフォルトの名無しさん
07/05/14 19:31:21
んでさぁ、これって何の ヒ ン ト なの?なんについてのレス?
main関数の戻り値はintって指定してあるのに、NULL指定って何?ただのバカ?失せろ社会のクズw
598 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw
617:デフォルトの名無しさん
07/05/14 19:31:27
>>614
どこがどう擁護してるのか分からないけど
言われて傷ついた?
そろそろwつけるの止めたほうがいいよ
618:デフォルトの名無しさん
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 そのものは値ではなく制御 文 字 であーる。
そんなの当たり前なのに、なーーにが値だ、あたいにはそんな屁理屈、通用しないかんね。