知识点小汇总

1.描述一下普通局部变量、普通全局变量、静态全局变量、静态全局变量的区别

局部变量在定义它的函数内有效,但是函数返回后失效
全局变量在整个工程文件内都有效

静态局部变量只在他的函数内有效,且程序仅分配一次内存,函数返回后,该变量不会消失
静态全局变量只在定义它的文件内有效

2.如何在其他文件中引用该变量/函数

 使用extern修饰变量的声明。 

举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。能够被其他模块以extern修饰符引用到的变量通常是全局变量。还有很重要的一点是,extern int v可以放在a.c中的任何地方,比如你可以在a.c中的函数fun定义的开头处声明extern int v,然后就可以引用到变量v了,只不过这样只能在函数fun作用域中引用v罢了,这还是变量作用域的问题。对于这一点来说,很多人使用的时候都心存顾虑。好像extern声明只能用于文件作用域似的。 (详情请看:(35条消息) C语言中extern的用法_知之可否的博客-CSDN博客

3.哪些情况下会出现野指针。

指针末初始化
指针指向的变量被释放后没有置为NULL
指针操作超过所指向变量的生存期

4.数组地址和数组首元素地址的区别

(1) 它们的地址是相等的
(2) 数组元素地址如果是p,则p+1指向第二个元素的地址
(3) 数组地址如果是&p,则p+1指向的就是这个数组末尾元素的下一个的地址

5.指针数组和指针数组的区别

指针数组是存放指针的数组,这个变量就是一个用指针修饰数组,数组中每个元素都是指针。
数组指针是指向数组的指针,这个变量是一个指针,用数组修饰,这个指针存储着数组的首元素。

6. sizeof和strlen的区别
sizeof是一个运算符,它所计算的是分配空间的实际的字节数。
strlen是一个库函数,计算的空间中字符的个数,不包含‘\0’,也可以说是计算字符串的有效长度。

7.字节存储顺序:大端存储顺序、小端存储顺序

大端存储顺序: 按照地址从低到高的顺序,先存储数据高位,再存储数据低位;

小端存储顺序:按照地址从低到高的顺序,先存储数据低位,再存储数据高位;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值