教えて! goo のコンテンツに対する取り組みについて

#include <stdio.h> int main(void) {
char str[] = "abcde";
for (char* p = str; *p; ++p) {
++(*p); printf("%s\n", &(*p)); }
}
において、char* p = str;の部分は「strの文字列の文字の先頭のアドレスの番号(例えば7005)をポインタpが適当に確保した他のアドレスのメモリにアドレスの番号7005が収納される」という解釈で良いですか?

gooドクター

A 回答 (3件)

合っていると思います。


№2さんの質問については、
①「適当に」というのは、プログラムコードでアドレスを指定していないので、OSが未使用のアドレスを割り当てるため、「適当」です。適切かつ妥当なアドレスです。いいかげんなという意味での適当ではありません。いいかげんは「良い加減」とも言えますが。
「他のアドレス」とは、例えば7005番地に確保するとstrの内容が変わってしまうので、7005番地以外のどこか他のアドレスです。
№1さんが言うように、そこまで厳密に作業内容を理解しようとするのは大変かと思いますが、そういう理解の進め方は、将来もっと高度なプログラム作りをするうえで役に立つと思います。
    • good
    • 0

良いか?と聞かれると、


①「ポインタpが適当に確保した」の「適当」ってどういう意味か?
②「他のアドレスのメモリ」の「他」ってどういう意味か?
を明確化しないと解釈への合意が得られないと、自分は思います。

もっとシンプルで良いと思うけど、lolzaさんの解釈を尊重するなら、回答No.1の「まぁエエんちゃいまっか。」に同意。
    • good
    • 0

> 「strの文字列の文字の先頭のアドレスの番号(例えば7005)をポインタpが適当に確保した他のアドレスのメモリにアドレスの番号7005が収納される」



もはや何書いてんだか分かんないし日本語としてクドくてヤバいけど、まぁエエんちゃいまっか。
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング