int main( void )
{
char s1[] = "abc";
char s2[] = "xyz";
char *s3 = "ABC";
char *p = s1;
printf("[1]p=%s\n", p);
p = s2;
printf("[2]p=%s\n", p);
*p = '1';
printf("[3]p=%s\n", p);
p = s3;
printf("[4]p=%s\n", p);
return 0;
}
$ gcc main.c -o main -lm && ./main
[1]p=abc
[2]p=xyz
[3]p=1yz
[4]p=ABC
*p=1 とすると、1yzとなるのか…
### const char*
int main( void )
{
const char s1[] = "abc";
const char s2[] = "xyz";
const char *p = s1;
printf("[1]p=%s\n", p);
p = s2;
printf("[2]p=%s\n", p);
return 0;
}
$ gcc main.c -o main -lm && ./main
[1]p=abc
[2]p=xyz
int main( void )
{
char s1[] = "abc";
char s2[] = "xyz";
char *const p = s1;
printf("[1]p=%s\n", p);
*p = '1';
printf("[2]p=%s\n", p);
return 0;
}
$ gcc main.c -o main -lm && ./main
[1]p=abc
[2]p=1bc