读书笔记 一

来源:互联网 发布:深入浅出数据分析 pdf 编辑:程序博客网 时间:2024/06/04 17:53

C和C++程序员面试秘籍——董山海

前言

面试技术人员,不是看他有多深多尖端的技术,而是看他的基础是否扎实,是否有团队精神,是否具备可塑能力,是否有奉献精神,大企业缺少的不是技术人员,是综合素质人才。

技术基础决定上层建筑。

C/C++基本上是所有语言的基础,是学习的重中之重。

内容提要
C/C++程序基础、预处理、const、static与sizeof,引用和指针,字符串,位运算与嵌入式编程,C++面向对象,C++继承和多态,数据结构,排序,泛型编程,STL,算法和逻辑思维。

第一章 C/C++程序基础

你在求职时,公司会询问你的项目经验,例如你做过什么类型的项目,担任的是何种角色,以及做项目时如何与人他人沟通,等等。除此之外,当然还要考查你的编程能力。这里包括你的编程风格,以及你对于赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。

C++域操作符

#include <stdio.h>int value = 0;void PrintValue() {    printf("value = %d\n", value);}int main(void) {    int value = 0;    value = 1;    printf("value = %d\n", value);    ::value = 2;    PrintValue();    return 0;}//运行结果value = 1value = 2Press any key to continue

这里写图片描述

选择编程风格良好的条件比较语句

A. 假设布尔变量名字为flag,它与零值比较的标准if语句如下。

//第一种:if (flag == TRUE);if (flag == FALSE);//第二种if (flag)if (!flag)

B. 假设整形变量的名字为value,它与零值比较的标准if语句

//第一种if (value == 0)if (value != 0)//第二种if (value)if (!value)

C. 假设浮点变量的名字为x,它与0,0的比较如下。

//第一种if (x == 0.0)if (x != 0.0)//第二种if ( (x >= ERSINON) && (x <= ERSINON) )if ( (x < -ERSINON) && (x > ERSINON) )////其中,ERSINON是允许的误差(精度)

D. 指针变量p与0的比较

//第一种if (p == NULL)if (p != NULL)//第二种if (p == 0)if (p != 0)

这里写图片描述

不使用任何中间变量交换a、b的方法

//利用加减a = a + b;b = a - b;a = a - b;//利用位运算中的异或a = a^b;b = a^b;a = a^b;
//Test.cpp#include <stdio.h>void SwapByOperation(int a, int b) {    printf("Begin:%d %d\n", a, b);    a = a + b;    b = a - b;    a = a - b;    printf("End:%d %d\n", a, b);}void SwapByBit(int a, int b) {    printf("Begin:%d %d\n", a, b);    a = a ^ b;    b = a ^ b;    a = a ^ b;    printf("End:%d %d\n", a, b);}int main(void) {    int a = 1;    int b = 2;    SwapByOperation(a, b);    SwapByBit(a, b);    return 0;}

C++ 和 C有什么不同

C是结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出和实现过程控制。

因此,C与C++的最大区别在于,它们用于解决问题的思想方法不一样。

C实现了C++中过程化控制及其他相关功能。而在C++中的
C,相对于原来的C还有所加强,引入重载、内联函数、异常处理等。C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等。

在C++中,不仅需要考虑数据封装,还需要考虑对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。

相对于C,C++包含了更丰富的设计概念。

extern “C”

  • 告诉编译器,其声明的函数和变量可以在本模块或其他模块中使用。
  • 被它修饰的目标是”C”的,意思是其修饰的变量和函数是按照C语言方法编译和链接的。
    这里写图片描述
0 0
原创粉丝点击