标题:char s[]与 *s的区别
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<math.h>
#include<stdlib.h>
int main(void){
//1.可以更改
//char s[] = "abcdDKFJADFJDF";
//2.编译器为字符串在静态存储区中预留一定的空间,一旦开始执行程序,他会为指针变量s流出一个存储位置,并把字符串的地址存储在指针变量中
//不能更改
char * s = "abcdDKFJADFJDF";
printf("%s\n", s);
//s[2] = 'q';//不允许
printf("%s\n", s);
//3.所以最好为
const char * s2 = "adjfakldf";
printf("s2\n",s2);
//s2[2] = 'd';//[Error] assignment of read-only location '*(s2 + 2u)'
s = (char *)malloc(strlen("lkjhfdsa") + 1);//[Warning] incompatible implicit declaration of built-in function 'malloc' 加入#include<stdlib.h>
s = "abcd";
printf("s:%s\n", s);
return 0;
}