面试题目——基础篇
来源:互联网 发布:java基础教程 pdf下载 编辑:程序博客网 时间:2024/06/03 14:45
1.进程和线程
2.定义与声明
声明:告诉编译器,这个名字已经匹配到一块内存上了,下面的代码用到的变量或对象是在别的地方定义的,并且这个名字别的地方不能再用做变量名或对象名。声明可以出现多次。
定义:定义创建了对象并为这个对象分配了内存。声明没有分配内存。
3.特殊的几个关键字
register:请求编译器尽可能的将变量存到CPU内部寄存器中。限制1:是尽可能,不是一定。限制2:register变量受限于寄存器约束,必须是一个单个的长度不大于整型的值。限制3:register变量可能不放在内存中,所以不能用取址运算符“&”来获取register变量的地址。
static:用法1:修饰全局变量,全局变量的作用域为“定义文件的”定义处到文件结束,定义前想用可用extern。用法2:修饰局部变量,作用域为函数内部,特点是函数退出后,静态局部变量的值位于内存的静态区,并不会销毁。用法3:修饰函数,静态函数(内部函数)的作用域仅限于本文件。static的好处是可以防止对象或函数重名。
sizeof:是关键字而不是函数,属于运算符。以下三种写法都正确。int i=0 A)sizeof(int) B)sizeof(i) C)sizeof i
case:后面只能是整形或字符型的常量或常量表达式
volatile:修饰的变量表示可以被程序外部修改。如电源开关。编译器不会对此类变量进行优化,一般如寄存器变量,一个端口的数据等。所以const volatile int i =10这种写法是正确的。表示i在当前程序内部会被修改,但程序外可能会修改这个值。
4.const与define区别
define没有类型修饰,在于编译期间进行简单的替换。对define的使用注意括号。
const严格来说是修饰只读“变量”,存放在静态区,在程序运行期间只有一份拷贝。值在编译时确定,有明确的修饰类型如 const int 同时const修饰的“变量”不能用于case
const用法1:修饰指针,忽略类型名,const离哪个更近就修饰哪个
const int *p //p指向的对象不可变
int const *p //p指向的对象不可变
int * const p //p不可变
const用法2:修饰函数参数,则参数值在函数体内不能被改变,编译阶段可发现此类错误
const用法3:修饰函数返回值,返回值不可改变
5.typedef与#define的区别
区别1:#define在预编译处理,typedef在编译阶段处理且不支持扩展如 typdef int INT32 unsigned INT32
区别2:#define PCHAR char* PCHAR p1, p2 p2实际上为char
typedef char* pchar pcahr p3, p4 p3 p4均为char*
常见错误:
1.对void指针进行算法操作 如p+1 不符合ANSI标准,但是GNU允许其和char*一致
2.函数return了局部变量
3.extern const int i;//正确
extern const in i = 0; //错误,const修饰只读变量,不能做左值
冷知识:
1.空结构体大小为1
内存划分
编译链接等
ifdef等
进程通信
线程通信
常见系统函数的实现 如memcpy
- 面试题目——基础篇
- 程序员面试宝典题目-基础篇
- Java基础面试题目
- java基础面试题目
- 前端面试基础题目
- JAVA基础面试题目
- 前端面试基础题目
- Java基础面试题目
- 面试题目10—相关题目
- 面试题目——String
- C面试常用基础题目
- J2SE基础常见面试题目
- java基础常见面试题目
- C面试常用基础题目
- JAVA笔试、面试基础题目
- 前端面试题目搜集——理论知识篇
- 后台开发面试题目整理——C++篇
- 面试题目(4)——虚基类
- Java compiler level does not match the version of the installed Java project facet. 错误处理
- LeetCode[Array]: Pascal's Triangle
- 会话bean综述(未排版)
- TNS-12571: TNS: 包写入程序失败
- 开始写博客了
- 面试题目——基础篇
- 安卓之旅(1)---创建一个安卓项目
- 『IOS』NSdata 与 NSString,Byte数组,UIImage 的相互转换
- HDU 1205 吃糖果(组合数学鸽巢原理)
- BeautifulSoup的安装和使用
- 十字链表的建立
- PLSQL Developer 64位 安装方法
- 嵌入式linux
- 无状态会话bean(1)---定义