char *a;a="abc"与char*a;*a="abc"char *a="abc"有什么区别吗?

如题所述

1,char*a;*a="abc" 是错误的, *a是字符,不是字符串。
2,另外两句完全一样。虽然编译能通过,但是你这句本身就是错误的:字符串定义应该是 const char *a = "abc"; 因为字符串储存在不可读内存中,所以c语言中字符串的的返回值是 const char*.
3, 如果要得到能读写的字符串请使用字符数组: char a[] = "abc"
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-23
char *a;
a = "abc";

char *a;
*a = "abc";
作用相同 就是将字符串数组的首地址给char 指针变量a(假设16位地址值,要被截断成8位
char *a =“abc” 可以看作是 char a[]="abc";
相似回答