面试常见题目

来源:互联网 发布:知乎 桃花灼灼宜室宜家 编辑:程序博客网 时间:2024/06/06 01:03

static用途:

1)全局变量和局部变量在内存中的区别:

          全局变量:在内存的静态存储区 

          局部变量:在内存的栈区

        (全局变量如果不初始化,由编译器自动初始化为0, 局部变量不初始化,结果未知)


2)static全局变量和普通全局变量的区别:

         相同点:都存储在静态存储区

         不同点:(作用域不同)

                         普通全局变量作用域包括各个源文件;

                         static全局变量作用域只在定义它的源文件内有效。


3)static局部变量和普通局部变量的区别

        不同点:(内存)

                          static局部变量存储在内存的静态存储区;

                          普通局部变量存储在内存的栈区。

                         (生存特点)

                          static局部变量只在定义的函数内有效,内存只分配一次,函数返回后,变量不会消失;(现象:static变量只被初始化一次,下次使用依据上一次的值)。

                          普通局部变量在定义的函数内有效,函数返回后,变量被回收,消失。  


4)static函数和普通函数的区别

        不同点:(作用域)

                          static函数即为内部函数,在内存中只有一份。(当重复包含改头文件时,也不会提示重复定义函数)

                          普通函数在每个调用中维持一份拷贝,(当重复包含该头文件时,会提示重复定义函数)


struct 结构的内存排列规则


怎么预防strcpy内存越界(查“内存越界”)

strncpy()


C程序和C++程序怎么区别

    C++中定义了宏  __cplusplus; 

     #ifdef __cplusplus

    #ifndef __cplusplus

    #endif 


.c++中定义了__cplusplus,C语言中没有该定义。即:识别是c代码还是c++代码。

0 0
原创粉丝点击