找工作时总结的一些C/C++知…"/>
找工作时总结的一些C/C++知…
原文地址:找工作时总结的一些C/C++知识点(1) 作者:xianfa110C语言的四个变量存储类分别是:auto, register, extern, static
1. auto
auto 可以省略不写,是局部变量,作用域限于所在函数或模块。
2. register
register变量作用域和auto变量相同。变量保存在寄存器中,只是对编译程序的一种建议,不是强制性的,比如当前CPU中所有寄存器都用光时,就会忽略。
寄存器变量无地址,无法进行求地址运算。寄存器变量应该尽量靠近使用的地方,用完后尽快释放。
3. static
static变量生存期直到程序运行结束,作用域和auto相同,能记住上次的值。
auto在进行编译前一定要有值,static变量则不需要有初值,如果无,则默认值为0。
函数默认为extern类型,如果要某函数只能在一个源文件中有效,而不能被其它源文件所用,则可将函数定义为静态的,即函数声明前加static。
4. extern
外部变量,是在函数外部任意位置定义的全局变量。
假如一个程序由10个源文件构成,每个源文件都必须访问一个全局变量,在这种情况下,其中9个文件必须把变量声明为extern,另一个则不能(因为须为该变量分配空间)。虽然在饱含main()函数的源文件中分配变量是最合理的,但哪个文件真正分配该变量是无关紧要的。
按值传递和按指针传递
指针与数组
当定义了指针类型之后,指针的增加减少是以类型所占的字节数增长的。如:int *p; p=p+1; 实际上p是的增加了sizeof(int)个。
对于数组,int A[10]; int *p=A; p=p+1; *p=10; 则是改变了数组的第二个值,地址自动按sizeof(int)增长。
堆和堆栈的区别
一个程序将操纵系统分配给其运行的内存快分为4个区域:
代码区:存放程序代码
全局数据区:存放程序的全局数据和静态数据
堆区:存放程序的动态数据
栈区:存放程序的局部数据,即各个函数中的数据。
函数调用的整个过程就是栈空间操作的过程。调用过程:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
进程和线程的概念
进程是一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。一个程序可对应多个进程。
线程负责执行包含在进程的地址空间中的代码,也即完成代码执行的是线程,而进程只是线程的容器,或者说是线程的执行效率。单个进程可能包含若干个线程。
命令行
void main(int argc, char *argv[])
{
}
argc表示参数的个数,acgv表示参数数组,操作系统以空格区分作为下一个参数的标志。
更多推荐
找工作时总结的一些C/C++知…
发布评论