学习Linux C过程中要解决的问题

来源:互联网 发布:上古卷轴5cpu优化补丁 编辑:程序博客网 时间:2024/05/07 19:53

一、概述

1、嵌入式为什么选择C语言做开发?

2、C语言的特点有哪些?(C移植性、访问硬件、运行效率)?

3、C语言开发存在哪些劣势(代码复用性、代码维护性、代码扩展性)?

4、面向结构和面向对象的变成特点和区别?

5、C语言VS汇编?(两者都访问硬件)

6、C语言之父?

7、C语言的标准有哪些?(K&RC,c89、c11)

二、数据类型

1、C语言的数据类型有哪些?(基本数据类型、复合数据类型)

2、所有数据类型的字节长度是多少?(所占内存空间大小)

3、sizeof如何使用?sizeof和strlen的区别?

4、所有数据类型的取值范围是多少?如何计算数据类型取值范围?(原码、反码和补码)

5、正数和负数的原码、反码、补码之间的关系?

6、各个数据类型的指针长度是多少?指针的长度为什么是4个字节或者8个字节?

7、变量的三大特点是什么?

8、变量的存储区域是如何划分的?(进程虚拟地址的空间分布图)

9、声明与定义的区别?什么是引用性声明?什么是定义性声明?

10、unsigned和signed的区别?

11、输入函数的使用?(scanf,gets,getchar)(如何从键盘获取数据类型?)

12、输出函数的使用?(printf、puts、putchar)

三、运算符表达式

1、i++和++i的区别?

2、逻辑运算符使用时应该注意哪些问题?(&&、||、!)

3、如何区分赋值=和==?

4、位运算(什么是掩码?左移和右移的区别)

5、逗号运算符的使用?

四、基本控制语句

1、分支语句:if

2、多路分支语句:switch 、case

3、循环语句:for、while、do while

4、跳转语句:goto

5、中断语句:continue、break

五、数组与指针

1、如何定义并初始化一位数组、二维数组、三维数组?

2、一维数组名、二维数组名、三维数组名的作用是什么?

3、什么是数组的地址?数组指针变量的作用是什么?

4、什么是指针数组?如何初始化指针数组?

5、什么是指针?(什么是对应的内存空间和指向的内存空间?)

6、一维指针、二维指针、三维指针的作用是什么?

7、null代表什么意识?

8、void*为什么称之为万能指针?

9、什么是野指针?如何避免野指针?野指针会造成什么问题?

10、malloc、calloc、ralloc这些函数的使用?

11、指针与数组的区别是什么?

12、C语言为什么引入指针的概念?

六、函数

1、什么是函数的定义?函数的声明?函数的调用?

2、如何定义函数、声明函数、调用函数?

3、什么时候传地址?什么时候传真?

4、return和exit的区别?

七、复合数据类型(结构体、共用体、枚举)

1、如何定义并初始化结构变量、共用变量和枚举?

2、使用结构体、共用体的注意事项有哪些?

3、结构体、共用体的作用是什么?

八、关键字

1、register关键字的作用是什么?如何使用?使用注意事项有哪些?

2、static关键字的作用是什么?如何使用?

3、const关键字的作用?如何使用?注意事项有哪些?

4、extern关键字的作用?什么时候使用?

5、typedef关键字的作用?什么时候使用?

6、volatile关键字的作用?什么时候使用?

九、预处理

1、宏定义的注意事项有哪些?

2、自定义函数和宏函数的区别?

3、条件编译的作用及如何使用?

4、如何用条件编译防止头文件重复包含?

十、编码规范(华为的编码规范)

1、为什么要学习编码规范?

2、优秀的编码习惯有哪些?

十一、数据结构

1、链表

2、栈

3、队列



1 0
原创粉丝点击