C/C++のポインタの機能--配列との関係
沖林正紀
2008/03/28 17:00
- 8件のコメント
#1 επιστημη
- 2008/03/29 10:05:24
» 不適切なコメントを報告する
#2 επιστημη
- 2008/03/29 10:14:39
[2page冒頭]
> さきほど*sで1つの文字列を表していたが、
違います。*sは"文字列"ではなく(先頭の)"文字"です。
文字列を表すのは*のつかない s です。
» 不適切なコメントを報告する
> さきほど*sで1つの文字列を表していたが、
違います。*sは"文字列"ではなく(先頭の)"文字"です。
文字列を表すのは*のつかない s です。
#3 がる
- 2008/03/31 00:20:21
んと…とりあえず筆者の方に伺ってみたいのですが。
char s[] = "Hello";
と
char *s = "Hello";
との違いが「どのあたりにある」と感じられてますでしょうか?
この違いがわかれば「配列の変数名をそのままポインタ変数名として扱える」といった暴論には繋がらないのでは無かろうか、と思います。
ポインタとか配列とかやるのであれば、まずはこのあたりの「メモリレベルでの差異」をきちんと理解してから、になさったほうがよろしいように思うのですが如何なものでしょうか。
» 不適切なコメントを報告する
char s[] = "Hello";
と
char *s = "Hello";
との違いが「どのあたりにある」と感じられてますでしょうか?
この違いがわかれば「配列の変数名をそのままポインタ変数名として扱える」といった暴論には繋がらないのでは無かろうか、と思います。
ポインタとか配列とかやるのであれば、まずはこのあたりの「メモリレベルでの差異」をきちんと理解してから、になさったほうがよろしいように思うのですが如何なものでしょうか。
#4 bright
- 2008/04/06 11:12:53
配列の変数名をそのままポインタ変数名として扱えるのではなく、配列のデータアクセスと、ポインタ経由でのデータアクセスに同じ表現が使えるだけのことです。この記述方法は便利ですが、初学者を混乱させてしまう仕様であることも事実だと思います。
初学者に誤った知識を与えないよう、早く説明を修正された方が良いでしょう。
» 不適切なコメントを報告する
初学者に誤った知識を与えないよう、早く説明を修正された方が良いでしょう。
#5 リュート
- 2008/04/17 21:27:08
気になったことがあるのですが,コメントの書き方で
char s[] = "Hello";
と
char s[] = {'H', 'e', 'l', 'l', 'o', '\0'};
が同じ内容のように読み取れるので,
「文字列は,s[]ではなく*sに直接代入する記述も可能」
という文は,
char *s = {'H', 'e', 'l', 'l', 'o', '\0' };
も可能である,と言っているように思えます.更にその直後の文字列のみに有効で,
int *n = {1, 2, 3};
という記述は不可能,という説明がその誤解を深めているように思います.
しかし,実際には
char *s = {'H', 'e', 'l', 'l', 'o', '\0'};
も不可能だと思います.
少なくとも,コメントの中の/* char s[] = {'H', ... */ の部分は削除した方が良いのではないでしょうか.
» 不適切なコメントを報告する
char s[] = "Hello";
と
char s[] = {'H', 'e', 'l', 'l', 'o', '\0'};
が同じ内容のように読み取れるので,
「文字列は,s[]ではなく*sに直接代入する記述も可能」
という文は,
char *s = {'H', 'e', 'l', 'l', 'o', '\0' };
も可能である,と言っているように思えます.更にその直後の文字列のみに有効で,
int *n = {1, 2, 3};
という記述は不可能,という説明がその誤解を深めているように思います.
しかし,実際には
char *s = {'H', 'e', 'l', 'l', 'o', '\0'};
も不可能だと思います.
少なくとも,コメントの中の/* char s[] = {'H', ... */ の部分は削除した方が良いのではないでしょうか.
#6 がる
- 2008/04/19 01:33:55
ところで。「C/C++のポインタの機能--配列との関係」が未修正のまま大分時間が経過しているように見えるのですが。
いつ頃修正されるご予定なのでしょうか?
まぁ「レビュー中」と先頭に書かれているので大丈夫だとは思うのですが…少々きになりましたもので。
» 不適切なコメントを報告する
いつ頃修正されるご予定なのでしょうか?
まぁ「レビュー中」と先頭に書かれているので大丈夫だとは思うのですが…少々きになりましたもので。
#7 tomita
- 2008/04/21 13:59:01
builder編集部の冨田です。
連載の修正が遅れており、ご迷惑をおかけしております。申し訳ございません。
いついつまでに修正を完了するとのお約束は致しかねる状況なのですが、
現在、再発防止策も合わせて検討しております。
今しばらくご辛抱頂ければ幸いです。
» 不適切なコメントを報告する
連載の修正が遅れており、ご迷惑をおかけしております。申し訳ございません。
いついつまでに修正を完了するとのお約束は致しかねる状況なのですが、
現在、再発防止策も合わせて検討しております。
今しばらくご辛抱頂ければ幸いです。
- 2日前のトップ記事
- 3日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
Adobe
まとめ
Python
C/C++
JavaScript
Firefox
Webデザイン
HTML
iPhone
Leopard
IDE
ライブラリ
Flash
Apache
iPod touch
RIA
ブラウザ
Oracle
SOA
仮想化
Database
開発環境
Java
Apple
Safari
入門
Ruby on Rails
Webアプリケーション開発
オープンソース
Mozilla
Linux
Off Topic
リファレンス
Eclipse
MySQL
server
Firefox 3
小技
Google
Ruby
イロハ
Tips
Ajax
Windows
フレームワーク
PHP
Microsoft
XHTML
CSS
Mac OS X
話題のタグを見る »
MSもアドビも学生さんに開発ソフトを無償提供
「Economist」のトップページがリニューアル
あなたがプログラムを理解できない10の理由:第2回
新APIまもなく登場--Google Developer Day 2008の見所とは?
仮想化によるコスト削減を見える化:オンラインTCOカリキュレータ
Firefox 3が対応したdisplayプロパティの値(2)
-Simplify IT- ITをシンプルに 連載第2回
リスティング広告における競争優位性の維持
内部統制対策を実現するIT運用管理ツール
> それは、配列の変数名をそのままポインタ変数名として扱えるということだ。
違います。n に値を代入できません(左辺値になれない)から、配列の変数名はポインタ"定数"扱いです。