一、
下面的语句都在main函数中
char* p1 = "abcd"; char* p2 = "abcd"; *p1 = 'e'; char ch1[] = "abcd"; char ch2[] = "abcd"; ch1[0] = 'e';
*p1 = 'e'; 执行时报错“写入时产生冲突”。 ch1[0] = 'e';正确
p1、p2指向的字符串“abcd”放在内存里的常量区,并且p1、p2指向的内存地址相同;数组ch1、ch2里存放的字符串放在内存里的栈中,并且ch1、ch2指向的内存地址不同。
二、构造函数中成员变量的赋值(assignment)与初始化(initialization)
Student::Student( 形参可有可无 ){ [1] }
在构造函数函数体内(即[1]处)书写的语句都属于赋值(比如:m_value = 12; m_chengji = chengji; 无论怎么写都属于赋值)
Student::Student(const double& chengji) :m_age(12),m_chengji(chengji) [2] {}
在[2]处书写的语句都属于初始化