char cars[] = "JQK";
char *cards = "JQK";
相同点
1、是字符串常量"JQK"
都在常量区,是只读的。
2、都在栈上创建cards
变量。
两者的区别:
1、声明数组变量cards
时程序会在栈上创建一个住勾搭数组老保存"JQK"
。并将字符串"JQK"
复制到栈上。
2、
指针cards
变量将会保存字符串常量"JQK"
的地址,因为常量"JQK"
是只读的,因此程序试图修改指针cards
的变量指向的字符串中的内容时就会失败。
字符串指针.jpg
3、通常会用
const
去修饰这样的指针变量,一旦你试图修改用const
修饰郭的变量,编译器就会报错。
const char *cards = "JQK";
网友评论