契机——初学字符串的经典赋值错误
char str[20]="Hello World";
str="Heeello" //错解,不能将char[]赋值给*char
strpy(str,"Heeelo"); //正解,另需头文件<string.h>
[Error] incompatible types in assignment of ‘const char [8]’ to ‘char [20]’
代码
#include <stdio.h>
int main(){
char str[20]="Hello World";
printf("%s\n",str); //从str[0]的值开始,输出\n前的所有字符
printf("%s\n",str+1); //从str[1]的值开始,输出\n前的所有字符
printf("\n");
printf("%c\n",*str); //输出地址str所对应的值,即str[0]的值'H'
printf("%d %d\n",str,&str[0]); //输出str的地址,即str[0]的地址
printf("\n");
*str='h'; //将str[0]的值改为'h',等价于str[0]='h'
printf("%c\n",*str); //输出地址str所对应的值,即str[0]的值'h'
printf("%d %d\n",str,&str[0]); //输出str的地址,即str[0]的地址
printf("\n");
printf("%s\n",str); //从str[0]开始,输出\n前的所有字符
return 0;
}
输出
Hello World
ello World
H
6487552 6487552
h
6487552 6487552
hello World