char a[] = "hello"; //ok
char *b="hello"; //ok
char c[10];c[10]="hello"; //error
char c[10];c="hello"; //error
char *d;d="hello"; //ok
char e[]={"hello"}; //ok
char *f={"hello"}; //ok
char *g;g={"hello"}; //ok
char a[]="hello";
a是常量,不能改变a的值。
char *b="hello";
b是变量,实际上把字符串的第一个字符的内存地址赋值给指针变量b。
使用字符数组定义字符串,字符串为字符串变量。
使用字符指针定义字符串,字符串为常量。
#include<stdio.h>
int main(){
char a[]="hello"; //int *a="hello"
char b[10];
char *p1,*p2;
p1=a;p2=b;
while(*p1!='\0'){
*p2=*p1;p1++;p2++;
}
*p2='\0';
puts(b);
return 0;
}
char *a = “sdasdasFDSFFasasd”;
#include<stdio.h>
int main(){
void fun(char *a,int *b);
char *a="sadasdFFDSFDSdsadas";
int n=0;
fun(a,&n);
printf("%d",n);
return 0;
}
void fun(char *a,int *b){
int num=0;
while(*a!='\0'){
if(*a>='a'&&*a<='z')num++;
a++;
}
*b=num;
}