ポインターの勉強を始めたんですが、分からないことがあるので教えてください。
環境は VC++2003/2005 でプロジェクトのプロパティでコンパイル言語をC言語にしています。

#include <stdio.h>

int main() {
    char exe[] = "test.exe";       /* �@ */
//  char *exe = "test.exe";        /* �A */
    char *p = strrchr( exe, '.' );
    if( p ) {
        strcpy( p, ".ini" );
    }
    printf("%s\n", exe);
    return 0;
}

�Aの方を有効にすると実行時にエラーになってしまいます。
�@も�Aもやっていることは同じだと思っていたのですが、何か違いがあるのでしょうか?