一、字符指针可以通过移动地址来减少字符串长度,而字符数组不可以。
char * ptr_ex = "abcd"; // 将字符指针指向常量字符串 /指向存储字符串的字符数组
ptr_ex += 2;
puts(ptr_ex); // 输出cd
二、字符数组和字符指针执行形式的不同。
1)初始化字符数组时会把静态存储区的常量字符串内容copy到数组中,地址不copy。
2)初始化字符指针时只把常量字符串的地址copy给指针,内容不copy。
#include <stdio.h>
int main()
{
char ex[] = "abcdefg";
char * ptr_ex = "abcdefg";
printf("字符串常量的地址:%p\n", "abcdefg");
printf("字符数组的首地址:%p\n", ex);
printf("字符指针的取值:%p\n", ptr_ex);
}