ページ 11

無題

Posted: 2009年6月13日(土) 17:20
by 狼太郎
最近ポインタについて勉強しています。
char *n="こんにちは"
とすると、*nに”こんにちは”へのアドレスが代入されるらしいのですが。。
""って具体的にどような働きをするのでしょうか?
たとえば
int a;
a=10;
printf("%d",a)
の時の""は?
char a[10];
scanf("%s",a);
の時の""は?
というような具合にです。

Re:無題

Posted: 2009年6月13日(土) 17:50
by ねこ
"(ダブルクォーテーション)は文字列を囲むための記号です。

・・・としか答えられないです。

Re:無題

Posted: 2009年6月13日(土) 18:53
by box
> char *n="こんにちは"
> とすると、*nに”こんにちは”へのアドレスが代入されるらしいのですが。。

*n ではなく、n というchar *型変数に、"こんにちは" の先頭のアドレスを代入します。

Re:無題

Posted: 2009年6月14日(日) 00:11
by sizuma
printfで%dがaを10進数で表示するのはprintf関数の機能で

"%d"という文字列を受け取って、%という文字を見つけたら、指定のフォーマット(ここではdなので10進数)で、第二引数を表示します。

働き、、、たぶんですが、
コンパイルするときに""(' 'もかな)を見つけたらコンパイラーが文字・文字列中のエスケープシーケンスを見つけて、対応するビット列に置換してくれる
なんて働きが、ありそう?
コンパイルの最適化はまったく知らないんでよく分からないで書いていますが。
違ったらご指摘ください。