2009-07-01 比较char*和char[]还有malloc的区别,代码如下: #include <string.h> #include <stdio.h> #include<stdlib.h> main() { char *c1 = "abc"; //在编译时就确定的 char c2[] = "abc"; //在运行时刻赋值的 char *c3 = ( char* )malloc(3); c3 = "abc"; printf("%d %d %s/n",&c1,c1,c1); //2293580 4206609 abc printf("%d %d %s/n",&c2,c2,c2); //2293576 2293576 abc printf("%d %d %s/n",&c3,c3,c3); //2293572 4206609 abc //strcpy(c1,"123"); //错误 strcpy(c2,"123"); //strcpy(c3,"123"); // 错误 // *(c1+1) = '1'; // 错误 *(c2+1) = '1'; // *(c3+1) = '1'; // 错误 //将char* 转化为 char[] strcpy(c2,c1); printf("%d %d %s/n",&c2,c2,c2); //2293576 2293576 abc //将char[] 赋给char* c1 = c2; strcpy(c1,"123"); printf("%d %d %s/n",&c1,c1,c1); //2293580 4206609 abc getchar(); }