Head First C学习之char cars[] = &qu

2016-03-18  本文已影响48人  燚随风
char cars[] = "JQK";
char *cards = "JQK";

相同点
1、是字符串常量"JQK"都在常量区,是只读的。
2、都在栈上创建cards变量。
两者的区别:
1、声明数组变量cards时程序会在栈上创建一个住勾搭数组老保存"JQK"。并将字符串"JQK"复制到栈上。

字符串数组.jpg
2、指针cards变量将会保存字符串常量"JQK"的地址,因为常量"JQK"是只读的,因此程序试图修改指针cards的变量指向的字符串中的内容时就会失败。 字符串指针.jpg
3、通常会用const去修饰这样的指针变量,一旦你试图修改用const修饰郭的变量,编译器就会报错。
const char *cards = "JQK";
上一篇 下一篇

猜你喜欢

热点阅读