int main() { int a = 10; int b = 20; const int* c = &a; printf("a的地址:%p\n", &a);//000000000062FE14 printf("b的地址:%p\n", &b);//000000000062FE10 printf("c修改前:%p\n", c);//000000000062FE14 = a c = &b;//无问题 printf("c修改后:%p\n", c);//000000000062FE10 = b
return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13
#include <stdio.h>
int main() { int a = 10; int b = 20; const int* c = &a;
c = &b;//ok:可以修改指针变量的值 //*c = 99;//err:不可以修改指针对应的内存空间的值
printf("%d\n", *c); return 0; }
const 修饰指针类型 可以修改指针变量的值,不可以修改指针指向内存空间的值。
修饰指针变量
1 2 3 4 5 6 7 8 9 10 11 12
#include <stdio.h>
int main() { int a = 10; int b = 20; int* const c = &a; //c = &b;//err *c = 200;//ok printf("%d\n", a);//200 return 0; }
//插入操作,直接类似数组赋值 mp[0] = "abc"; //查找,如果找到会返回该元素的迭代器,否则it指向mp.end(),这里mp.end()并不指向元素,空的 auto it = mp.find(0); //map的开始结束迭代器 auto it = mp.begin();指向第一个元素 auto it = mp.end();指向最后一个元素的后一位 //判空 mp.empty();空则返回true //返回元素个数 int len = mp.size(); //insert,因为元素键在map中是唯一的,所以插入操作首先检查给定键是否已存在于map中,如果键已存在于map中,则它不会插入map中 mp.insert(pair<int,char>(4,'d')); //earse删除一个 mp.earse(1); //清空clear mp.clear(); //判断键的个数,map低层是红黑树,所以count只能是0或1 int c = mp.count(1);