C语言-基础知识

作用域

局部变量:函数内部定义的变量。

全局变量:函数外部定义的变量。

extern关键字

用于变量:

extern int a; // 声明一个全局变量 a
int a; // 定义一个全局变量 a
extern int a =0 ; // 定义一个全局变量 a 并给初值。
int a =0;    // 定义一个全局变量 a, 并给初值。

用于函数:

/*fun.h*/
int fun(void);   //函数声明,所以省略了extern,完整些是extern int fun(void);

/*对应的fun.cpp文件*/
int fun(void)
{
     return 0;
}//一个完整的全局函数定义,因为有函数体,extern同样被省略了。

函数,对于函数也一样,也是定义和声明,定义的时候用extern,说明这个函数是可以被外部引用的,声明的时候用extern说明这是一个声明。 但由于函数的定义和声明是有区别的,定义函数要有函数体,声明函数没有函数体(还有以分号结尾),所以函数定义和声明时都可以将extern省略掉,反正其他文件也是知道这个函数是在其他地方定义的,所以不加extern也行。两者如此不同,所以省略了extern也不会有问题。

static关键字

首先 static 的最主要功能是隐藏,其次因为 static 变量存放在静态存储区,所以它具备持久性和默认值0。

指针和const

指针常量:指针是常量。

int x[] = {1, 2, 3};
int * const p = x;
//p++; // Compile Error

常量指针:常量的指针。

int x = 1;
int const *p = &x;
const int *p = &x;
//*p = 100; // Compile Error

指针和数组

数组指针:

// 数组指针
int y[][2] = {1, 2, 3, 4};
int(*p)[2] = y;          // p是数组指针,指向的元素都是长度为2的数组
int a = **p;             // 1
int b = (*p)[1];         // 2
int c = (*(p + 1))[1];   // 4
int d = *(*(p + 1) + 1); // 4

指针数组:

// 指针数组
int y[] = {1, 2, 3, 4};
int *ps[] = {y, y + 1, y + 2, y + 3}; //ps是数组,元素都是指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值