同じC文字列へのポインタが2つあります。2番目のポインターを1つインクリメントし、2番目のポインターの値を最初のポインターの値に割り当てると、最初の文字列の最初の文字が変更されると予想されます。例えば:
#include "stdio.h"
int main() {
char* original_str = "ABC"; // Get pointer to "ABC"
char* off_by_one = original_str; // Duplicate pointer to "ABC"
off_by_one++; // Increment duplicate by one: now "BC"
*original_str = *off_by_one; // Set 1st char of one to 1st char of other
printf("%s\n", original_str); // Prints "ABC" (why not "BBC"?)
*original_str = *(off_by_one + 1); // Set 1st char of one to 2nd char of other
printf("%s\n", original_str); // Prints "ABC" (why not "CBC"?)
return 0;
}
これは機能しません。私は明らかな何かを見逃していると確信しています-私はCの経験がほとんどありません。
ご協力いただきありがとうございます!