###前提
書籍で勉強している学生です。
書籍の解答がないため問題のヒントや解説をしていただけると嬉しいです。
###問題
以下の実験結果を考察しなさい。
lang
1#include <stdio.h> 2 3int main (void){ 4 5 char *p = "123"; 6 7 printf("p = \"%s\"\n", p); 8 9 p = "456" + 1; 10 11 printf("p = \"%s\"\n", p); 12 13 return 0; 14} 15
###実行結果
p = "123"
p = "56"
###疑問点
この実行結果は、文字列リテラル"123"
の先頭文字'1'
を指すポインタpが,
別の文字列リテラル"456"
の先頭文字'4'
を指すように更新され、それに1が加えられる事によって
"56"
を指すようになった、という理解でよろしいのでしょうか。
また、文字列リテラル"456"
を指すポインタpにおいて、
&p[1] - &p[0]
は必ず1となるのでしょうか。
###補足情報
書籍:新明解C言語 入門編
演習 11-1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 12:57