C
1#include <stdio.h> 2int main(void){ 3 char a[]="012345", *p=a+1; 4 printf("%d\n",a); 5 (*p)++; 6 printf("%c\n",*p); 7}
C言語に関して初歩的な質問ですが、この時出力が-491984928と2になる理由が全く分かりません。
それに当たり以下の疑問があるのですが教えてください。
①aは配列という考えであっていますでしょうか?しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
② p=a+1;において配列に1を足したpに何の値が入っているのでしょうか?
③(*p)++;の()の意味が分かりません。*p++;ではなぜ値が変わるのでしょうか?
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー