字符串指针:
char *pStr = "fighter";
或,
char *pStr;
pStr = "fighter";
字符数组:
char aucStr[] = "fighter";
字符数组和字符指针变量都可实现字符串的存储和运算。
定义和初始化:
数组和指针都可以在它们的定义中用字符串常量进行初始化。
定义指针时,编译器只是分配指针本身的空间,并不为指针所指向的对象分配空间。定义字符数组时,编译器为数组指针本身分配空间,同时为所指向的对象分配了空间。
存取访问:
在ANSI C中,初始化指针时所创建的字符串是一个字符串常量,是只读的。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。
由字符串常量初始化的数组是可以修改的。其中的单个字符在以后可以改变。
字符串指针指向的字符串实际上是一个常量字符串,存储在静态存储区,在整个程序运行结束后释放内存。
字符数组首地址指向的地址是栈地址,在函数执行完后释放内存。