在other.cpp中


#include<iostream>

using namespace std;

#const int global=5; //加入const 会让global原来的外部的链接型转为内部链接性。

extern const int global=5;

void print(){

cout << global << endl;

}


在main.cpp中

#include<iostream>

using namespace std;

extern const int global;//这里会报错,因为global中只有other.cpp可以用。

int main(){

cout << global << endl;

system("pause");

return 0;

}

若想这个const常量可以被main.cpp中使用,可以按蓝色字体的加个extern就可以了。

注意:若在other.cpp文件中global变量不具有外部链接性,照样可以通过他的函数print()访问

函数默认具有外部链接性!



这里我还想提醒一下。任何变量或数组的赋值,在main()和一些函数外,只能在定义的时候赋值。

不得定义后再赋值。

#include<iostream>

using namespace std;

//extern const int global;

float * pd1 = new float[20];

int s=5;//可以在定义是直接赋值。

//s = 5;错的

int a[100];

//a[1]=3;错的,


int main(){

pd1[3] = 100.0;

cout << pd1[1] << endl;

float * pd2;

pd2 = new float[20];

pd2[0] = 100.00;

cout << *pd2 << endl;

delete pd2;

delete pd1;

system("pause");

return 0;

}



const int * func; //是一个指向int型常量的指针,这个常量不可改变但指针可以改变

int *const func; //将func不可以自加。


这里指向常量的指针可以指向变量。

int a = 10; //变量

const int * ptr = &a;//指向常量的指针可以指向变量。

a = 3;


但是

const int a = 10;//变量

const int * ptr = &a;//指向常量的指针可以指向变量。

//a = 3; 会报错