![](https://csdnimg.cn/release/download_crawler_static/86344480/bg1.jpg)
指针比较
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
char *str5 = "abc";
char *str6 = "abc";
const char *str7 = "abc";
const char *str8 = "abc";
str1 == str2 //0
str3 == str4 //0
str5 == str6 //1
str6 == str7 //1
str7 == str8 //1
像 str1 到 str4 这些字符数组,局部变量在栈空间分配,虽然数据一样,但是
各自都有自己的存储位置,所以他们比较的结果是 0,即不相同;str5 到 str8 这
几个指针也是在栈空间分配,都指向"abc",这个"abc"是存储在数据区的,也就
是说它们指向的是同一个位置,所以输出是 1。
const(只读)
const 要求其所修饰的对象为常量,不可对其修改和二次赋值操作(不能作
为左值出现)。
const int a;
int const a;
上面两句是等价的,都表示一个常整型数,意思是
const int a;
a = 0; //error
const int a = 0;
a = 1; //error
上面的都是错误的,因为 a 是只读的,所以只能定义的时候赋值而且之后不
可以改变。
评论0