C/C++
一只黑瘦
爱搞事的Boy
展开
-
extern 变量声明,
extern:C语言中extern可以用在变量或者函数之前,来表示变量或者函数定义在别的文件中,提示编译器遇到此变量或者函数的时候在其他模块中寻找其定义。 (注意:可以多次申明变量,但是定义只有一次!)例子: 如上所示,在main.c文件中定义了id这个变量,我们在test.c文件中若想使用此变量。需要加上extern来声明这个变量。原创 2017-08-10 17:09:28 · 318 阅读 · 0 评论 -
static
1.1 静态全局变量静态全局变量有以下特点: • 该变量在全局数据区分配内存; • 未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化); • 静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的; 定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处: • 静态全局变量不能被其它文件所用; • 其它文件中可以定义相同名字的变量...原创 2018-01-23 10:24:10 · 163 阅读 · 0 评论 -
C++中class与struct之间的区别
在C语言中,struct只能包含成员变量而不能包含成员函数,而在C++中struct类似于class,既可以包含成员函数,又可以包含成员b变量。 C++中的struct与class基本上是通用的,只有以下几个区别点: 使用class时,类中的成员默认是private属性的,而struct默认是public属性的; 使用class时,继承默认是private属性的,而struct默认是publ...原创 2019-06-13 09:53:29 · 204 阅读 · 0 评论 -
指针数组和数组指针
数组指针:(行指针) 定义:int (*p) [n]; ()的优先级高,说明p是一个指针,指向一个整型的一维数组,这个数组的长度是n,当执行p+1时,p要跨过n个整型数据的长度,(n可以成为p的步长)。 如要将二维数组赋给一指针,应这样赋值: int a[2][3]; int (*p)[3]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a; ...原创 2019-06-13 10:16:49 · 142 阅读 · 0 评论 -
二维数组名与其指针的关系
之前一直对二维数组的各种指针不是很明白,今天在这里做一个总结~ int nums[2][3] = {1,2,3,4,5,6}; nums为数组名,代表第一行的指针,它指向的是一整行 *nums 才是nums[0][0]的地址,*nums= nums[0] = &nums[0][0] 结论:**nums才表示nums[0][0],*nums表示nums[0][0]的地址,nums表示...原创 2019-06-13 10:46:06 · 1495 阅读 · 0 评论