#include<iostream>
using namespace std;
void test(int *s){
s++;
*s=3;
}
int main(){
int s=0;
test(&s);
cout<<s;
return 0;
}
出力はです。私は0しか期待していませんでしたが、テスト関数でsに割り当てられた値に等しいゼロを得ています。私はなぜこの出力を与えるのか理解できません。次のプログラムの出力はどのようになりますか?
が編集されました。
's ++ 'はメモリ内の有効な場所を指していないので、あなたのプログラムは*未定義の動作*を示します。 – dasblinkenlight
コンパイルされないので、出力は表示されません。 –
[nasal demons](http://www.catb.org/jargon/html/N/nasal-demons.html)を参照してください。 – scohe001