当笔记使用,不定期更新
1、定义全局变量时,通常是在源文件中定义,在需要使用的头文件中用extern声明
这样能够确保只有一个地方分配内存和初始化变量,其他源文件通过 extern
声明访问这个已经定义的变量,从而避免了重复定义的问题。
2、const常量
const int a = 1;
int*aptr = (int *)&a;
*aptr = a+1;
printf("a:%d *aptr:%d", a, *aptr);
C++中输出是1,2,因为输出时使用a的初始值来替换,和宏定义一样,而不是内存中的值;
C 中输出是2,2,因为C中const语义较弱,会被指针所修改。
3、C和C++中字符串的区别
在C中是字符数组,在C++中是字符串,但强调用const来修饰
C++中
char word[3]="123"; //会报错,因为结尾有‘\0’,应用char[4]来管理
char *ptr="123"; //会报错,应用const char *来管理
C中
char word[]="123"; //会加上结尾的‘\0’,变成char[4]
char word1[3]="123"; //仍是char[3]
char word2[3]={'1','2','3'};//以字符组的形式输入,仍是char[3]
char *ptr="123"; //不会报错,
4、vector初始化
vector<int> v(3) ===> v= 0 0 0
vector<int> v(3,4) ===> v= 4 4 4
vector<int> v{1,2,3} ===> v= 1 2 3