c plus plus基础入门,C/C++零基础学习指南 看这一篇就够了

c plus plus基础入门,C/C++零基础学习指南 看这一篇就够了

关于C/C++的学习指南路线,这块的东西很多很杂,本篇进行梳理和总结,希望对大家C/C++的学习有所帮助,不足的地方也欢迎补充。C/C++语言依然以无可撼动的地位,构建着一系列计算机基础软件。如操作系统Linux采用C语言设计;数据库软件MySQL采用C和C++设计。在新兴起的人工智能和深度学习领域,虽然Python语言大量使用,但底层的计算模块基本全采用C++语言开发。其原因是人工智能算法皆是计算密集型算法,需要用C/C++开发以保证算法的执行效率。培养具有深厚基本功的计算机专业人才,C/C++语言是不可忽略的一门基础课程。

二、标准输入输出

1. 第一个c++程序

输出:hello world

示例1:

#include <iostream>
//io输入输出  stream流
//std::cout  输出流对象  对象在面向对象语言中指的是类的一个实例,就是用类定义的变量。
//std::是cout的命名空间
// << 运算符重载,后面会学的语法。 在这里是将<<的右值给左值,在这里是使用输出流对象输出字符串。
// << 继续给cout输出  std::endl; 换行符  end line
//C++的main返回值必须是int
int main()
{
    std::cout<<" hello world !"<<std::endl;
    return 0;
}

编译:g++ test.cpp -o test

运行:./test

2. 输出流对象

输出流对象可以自动识别基本类型的输出类型

std::cout

对象

示例2:

#include <iostream>
​
int main()
{
    int a = 10; 
    char c = 'q';
    std::cout<<a<<" "<<c<<std::endl;//10 q  自动识别要输出变量的类型
    return 0;
}

语言本身的学习

C语言除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外,最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C掌握情况的两大标准。

C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的复用、扩展和工程化,这是大型项目的必备要素

除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等

最后一个小建议是:语言部分的学习建议不要拖太久,一定要规划好时间,一鼓作气,高强度给它压下来,否则容易把自己搞泄气。

编程基础四大件

基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式

这跟学什么编程语言、后续从事什么编程方向均无关,只要做编程开发,这四个计算机基础就无法避开。可以这么说,这基础四大件真的比编程语言重要!

数据结构和算法

可以说这个直接决定了面试的成败!几种基础数据结构类型得烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、动态规划、分治等等。

计算机网络

此处的计算机网络指的就是TCP/IP协议栈,可以说它是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议。

C14 1

操作系统

该部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分布、内存调度)

设计模式

倒不需要23种设计模式全部记住,常见的几个如:单例模式、工厂模式、代理模式、策略模式、模板方法模式建议熟练于心。

应用实践编程

这部分会涉及到一些工具、编程环境、和具体编程实践,应该说这一部分学完,自己应该能做点东西出来、或者说能看懂一些实际项目的代码。

Linux操作系统的使用

很多人初学C语言、C++(包括我)都是在Windows环境上进行的,而实际企业级开发几乎不可能,所以Linux系统必须要会,我们别无选择。先谈使用。

包括:常见的Linux操作命令、基本的Shell编程。

C12 1

编译/调试工具

首先是跟编译相关的:编译工具!

我们知道很多人学C语言、C++都在类似Visual Studio这种集成IDE里进行代码编译,这个其实也用了编译器,只不过是微软自家的MS编译器,而且所有操作均可视化。而企业里开发很少会基于Windows系统,所以Linux平台上的编译器更为重要,最典型的当属GCC,甚至有些公司有自己定制过的交叉编译工具,但没关系,只要GCC熟悉,其他问题都不大。

其次,大家自学C语言、C++,都借助类似VS这种IDE,点按钮即可对源文件编译。而企业里实际项目的编译动作叫make,编译的实际动作和过程都是写在makefile文件里,所以makefile的书写规则建议学习!

最后说到调试,Linux平台上的GDB调试工具要熟练使用,会借助于它进行调试。

Linux环境编程

还是那句话,企业里C语言和C++几乎都是基于Linux平台的,这一部分我们没办法避开

(1)Linux系统编程

众所周知,Windows系统编程里有各种各样的Windows API,同理Linux系统API的使用就更加重要。

(2)多线程编程

此处指的是多线程编程实践相关的东西,一般包括:线程、资源、信号、同步、互斥、锁等等一些具体的编程方法。

(3)网络编程

此处的网络编程主要指的是具体Linux系统上的网络编程API和IO函数的编程实践。

学习建议

对于C/C++的学习,建议主要是多看和勤练。

(1)确定好要学习C/C++,便朝着自己预期的目标,坚持学习下去。千万不要东学一点,西学一点,导致自己沦为”什么都懂一点,但又不能真正解决问题的杂家”。

(2)注重基础知识的学习。要建造简单的房屋,首先要打地基、搭框架。如果一开始没有牢固的结构,后面就很难建造窗子、门框、圆屋顶和镶木地板的舞厅等。

同样,学习计算机语言时,应从程序的基本结构开始学起。只有这样,才能一步一步了解其具体细节,如循环和对象等,并且,先学习了一些基本概念后,便可以激发自己接下去学习的兴趣。

(3)边学边练,避免眼高手低。不论是在学习基本知识的时候,还是学习实例的时候,都一定要多敲敲代码,巩固记忆。

© 版权声明
THE END
喜欢就支持一下吧
点赞1109 分享