1. 串口通讯到底是怎么搞的??
2.指针和数组的关系?C语言中指针和数组存在着一些本质的区别。当然,在某种情况下,比如数组作为函数的参数进行传递时,由于该数组自动退化为同类型的指针,所以在函数内部,作为函数参数传递进 来的指针与数组确实具有一定的一致性,但这只是一种比较特殊的情况而已,在本质上,两者是有区别的。(数组在C语言中 是个特殊的存在,每本书都单独讲数组的东西,明白了吗?)
3. 递归和迭代的关系? 递归是说不停的自调用自己这个函数,而迭代只不是循环使用某个函数,而是循环使用某个变量,例如求阶乘时使用的中间变量。
4.为什么C的数组不检查下标越界? 因为这是一项困难的任务,因为下标引用可以作用于任意的指针,而不仅仅是数组名。作用于指针的下标引用的有效性既依赖于该指针当时恰好指向什么内容,也依赖于下标的值。
5.回调函数:所谓的回调函数就是把某个函数的函数指针作为形参,从而调用这个函数。例如,我编写而来某个函数A,把API中的某个函数指针作为A的形参,A就是回调函数。
6. 同一个程序的一组源文件(c程序)中,是否可以有同名的函数呢?经过试验,不行
7.C中关于.h和.c的一点想法归纳:.h,.c同名只是因为方便管理,可以不同名。每个函数的作用域是整个程
c++中字符串数组怎么定义序的一组文件,所以不能重名(但是,如果两个库中的函数同名呢?这样不行吗?不懂) 如果某个文件中包括一个函数,main.c中不include该文件,可以调用这个函数吗?可以调用,但是如果给函数加上static,则这个函数只能在该文件中可用
例如:1.h中声明1()和static A(); 2.h中声明2()和static A(); 对应的.c文件进行1(),static A(),2(),static A()相应的函数定义。 最终出现正确结果,但是最好不要这么搞!! 如果某个文件中定义了一个全局变量,如果想在另一个文件中使用,必须加上extern,否则无法使用(经过验证了)
8. C 中关于static: 全局变量和全局静态变量的区别1)全局变量是不显式用static修饰的全局变量,但全局变量默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。 静态局部变量有以下特点:该变量在全局数据区分配内存;静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;它始终驻
留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束. 在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。
9. C中只能用字符数组定义字符串,如char A[]="lallslsl";或者char A[10]={"alaal"};字符串常量的定义为const char s2[]="ssss"; 也可以用#define ss "lslslsl"
10. 代码编写规则? 1.变量可由字母, 数字,下划线组成,必须以字母或下划线开头,C++对大小写敏感,变量名一般全部小写
11. c++中,在一个文件中定义了全局变量,另一个文件如果想是使用,另一个文件中必须使用extern. 而如果一个文件中使用了const限定,则两个文件中必须都使用extern才能使用。而c程序中即使添加const,只要第二个文件加入extern就可以了。
12. c++不检查数组下标越界.
<和g++都是GNU(组织)的一个编译器。误区一:gcc只能编译c代码,g++只能编译c++代码? 答案:两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。
14. 引用和指针的区别? 指针可以被重新赋值,而reference则总是指向最初或地的对象.引用是另一个别名而已。定义引用时必须初始化。
15. c++中,函数形参也是传值的,这样传递的某些值工作量特别大,所以推荐使用引用,但是为什么不使用指针呢?可能因为引用是类型安全的,而指针不是(引用比指针多了类型检查)
16. MFC,QT等东西是开发图形GUI的框架库,可以拿来开发图形界面。
17. 虚函数与多态??? 虚函数是一种函数,特殊的函数,为了呈现多态性而定义的一种特殊的函数,虚函数只有在指针和引用时才发挥作用. C++ data slicing
18. C++中,为什么会内存泄露?因为用new关键字产生的对象返回一个指针,这个对象放在堆中,因此当指针消失后,没有办法在访问到该对象,造成内存泄露
19. c++中,引用是传递的什么? 对于类来说,如果把一个局部变量引用传给别人,会怎样?可以呀,只要能够被访问
20. c++中,前向声明是不完全类型,只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指
针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.
21. c++中,从键盘获得不确定长度的字符串:#include<<iostream>> <<string>>(这里不是string.h,这个是旧c++标准的东西,而string为新c++标准的东西) cin>>string;就可以了.
解释:一般一个旧C++标准带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。 string标记特殊,因为标准C中有了string.h头文件,旧的C++中使用string.h代表标准C的string.h,而在新标准c++中,使用cstring代表C标准中的string.h, 但是不管新旧c++标准中string一直代表c++中的string类 (不存在cstring.h,这他妈的奇怪,让我糊涂了)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论