当前位置: 首页 > news >正文

C/C++基础

C++开发环境

纯语言开发要求:C++IDE。

 极简C/C++ 语法规则

仅记原始规则,把握编程的本质,不做孔乙己,要做说干就干的平头哥。

原始的规则:

  1. 各“语法单位”(组成部分)使用任意个(至少1个)分隔符隔开。分隔符有:空格,或tab键,或换行符。
  2.  ​​​​​​必须使用英文输入法输入(仅双引号括起来的“字符串”中可使用中文)
  3. 每条代码的后面使用 ;表示这个指令代码结束。
  4. #include等预处理指令,必须一条指令占一行

        其他规则不需记忆,在后面的项目实践中掌握。不要刻意记忆C++的语法规则(记也没有意义)。初学时,仅掌握最基本的语法规则即可!

代码风格

代码风格很差的代码:常见于报价低但是由要求给源码的外包软件中。(目的:让人看不懂)

良好的编程习惯:变量在定义时,进行初始化:int  age = 0;

程序员的第一印象,不是外表,而是自己的代码风格:命名风格、缩进风格、注释风格

头文件的使用

        程序如戏,程序中有很多元素(std::cout, system), 都是一个个演员。但是他们之间都互不认识, 但是却要一起合作, 强行编译, 就会导致错误!得预先介绍他们, 知道他们各自的名号和用法。

解决方案:包含相应的头文件! (头文件中, 含有相关元素的介绍说明)

std::cout    头文件: iostream

system     头文件: Windows.h

#include <Windows.h> 表示把文件Windows.h中的所有内容拷贝(复制)到“这里”。

头文件的查找路径

        #include  <Windows.h>,<>表示,从编译器默认的路径中去找文件stdio.h。这个默认路径,取决于编译器。不同平台下不同编译器的路径都不相同。这个默认路径下,已经包含了c标准库所需要的所有头文件。使用C++标准库的头文件使用该方式。

        #include  “mytest.h”,“”表示从当前目录下寻找文件mytest.h,如果在当前目录下找不到,再从编译器默认的路径中查找。使用用户自定义的头文件使用该方式。

头文件的位置

        要求放在文件的最前面。#include 的作用是,把相关的声明拷贝到这个文件内,所以都习惯把#include 放到文件的最前面。

main函数

        main函数是主程序的唯一入口。一个程序,必须要有一个main函数,而且也只能有一个main函数。

main函数的格式:

格式1:int  main(void) { }

格式2:int  main(int argc ,  char* argv) { }

其他函数

IT格言:不要重复制造轮子 ---《人月神话》。解读:尽可能使用已经开发好的函数。

        其它函数:C标准库、C++标准库、第三方开源框架、公司内已经开发好的函数、程序员自己定义的函数

数据格式

字符串常量

字符串常量:内容永远不会发生变化的字符串,用半角(英文输入法)双引号“”括起来。

std::cout << “我的战斗力是” <<  10000;        //“我的战斗力是”是字符串常量,10000是整数常量

常量和变量的区别:常量在程序整个运行期间,值不会发生任何变化。变量:在程序整个运行期间,值随时可以发生变化。

cout和printf的使用

C++风格的打印:

实例:std::cout << "你好!" << std::endl;

等效于:std::cout << "你好!";std::cout << std::endl;

std::cout, 可以连续输出任意多个数据,中间用 << 隔开。

使用要求:需要包含头文件 #include <iostream>,注意不是#include <iostream.h>

        std是一个命名空间,cout是std命名空间内的一个“对象”。endl也是std命名空间内的一个对象,用来表示“回车符”(换到下一行的最前面)std::cout <<   相当于调用了一个特殊的函数(但不是函数),用来打印数据。

C风格的打印:

实例:printf(“你好!\n”);  

等效于:printf(“你好!”);printf(“\n”);

printf(“工资:%d  年假:%d”, 30000, 12); printf(“圆周率:%f”, 3.1415);

说明:占位符的使用、%d 整数、  %f  浮点数(带小数部分的数据)

使用要求:需要包含头文件 #include <stdio.h>

特别注意:std::cout和printf还有很多用法,现在只需要掌握以上最常用的用法,其他的用法现在不需要关注。

打印语句的使用场合:控制台应用程序的输出、程序调试Bug的重要手段

 
cin的使用

当缓冲区为空时,程序才会暂停,让用户输入数据。输入回车后,数据全部送到输入缓冲区。

#include<iostream>
#include<Windows.h>
int main(void){
	float height;
	
	std::cout << "请输入您的身高:[单位-米]" << std::endl;
	std::cin >> height;

	std::cout << "您的身高是: " << height << "米" << std::endl;

	system("pause");
	return 0;
}

小结:对于char, int, float等基本数据类型, 直接使用std::cin >> 输入即可.

特别注意:输出使用 std::cout <<        输入使用 std::cin >>

 命名空间的使用

C++避免名字冲突:使用命名空间

#include <iostream>
#include <string>

namespace China {
	float population = 14.1;  //单位: 亿
	std::string capital = "北京"; 
}

namespace Japan {
	float population = 1.27;  //单位: 亿
	std::string capital = "东京"; 
}

using namespace China;
using Japan::population;

int main(void) {
	std::cout << "首都:" << capital << std::endl;
	std::cout << "人口:" << population << std::endl; //出错!

	system("pause");
	return 0;
}

//错误提示:population”: 不明确的符号
//错误原因:
using namespace China;   //China命名空间中有population
using Japan::popolation  //又单独声明了Japan中的population

//解决方案:指定完整的域名(Japan::population )来表示。
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << Japan::population << std::endl; 

 
C++程序编译过程

使用注释的要点

注释的目的:为了让程序更方便阅读(“可读”),以便于维护。

需要注释的内容:重要变量名的作用(用来表示什么)、比较复杂的算法思想、程序中的关键步骤

注释的方式:单行注释  //  在行尾,或代码的上一行;多行注释  /*  */  不支持嵌套。

图形开发环境

图形开发环境特点
MFC或WPF使用方便, 但是需要先熟悉C++, 仅适用于Windows平台。
QT跨平台, 也要先熟悉C++
图形库OpenGL

OpenGL非常强大, 很多大型游戏引擎就直接使用OpenGL绘制图像。

缺点: 太复杂, 不适合初学者

EasyX

开发简单的图形界面应用程序

适用于Visual C++或VS其他版本,使用简单, 适合C/C++初学者构建图形界面.

但在实际工作中用不上。

    积木式编程训练

            Scratch介绍:Scratch是一款由美国麻省理工学院(MIT) 设计开发的开源的图形化编程工具。直接用图形化、积木式的方法开发应用程序。

            目的:忽略语言细节,专注编程的本质:编程思维;快速掌握编程技能。

            应用:可直接开发各种游戏、应用。结合Arduino开发板(一种开源硬件),可开发各种极客项目、机器人项目。

            适用于:初学编程的所有人群。

            不适用于:已经具备丰富编程经验的程序员。

    Scratch使用方式:网页方式(国外网站,受网速影响严重)https://scratch.mit.edu/

    离线式:下载安装Scratch

    代码对比工具

    明明文档或代码是一样的,为什么还是出错?

    使用场合:学习时,和参考代码做比较、开发时,在多个版本之间做比较。

    beyond compare  代码对比工具

    相关文章:

  1. 基于 DB、EAST、SAST 的文本检测算法详解及应用综述
  2. VSCode写java时常用的快捷键
  3. 【KWDB 创作者计划】_产品技术解读_2
  4. 如何分析 JVM OOM 内存溢出 Dump 快照日志
  5. ​印太贸易新轴心成型:澳新领衔的“关税破壁行动“​
  6. VUE项目中的package.json中的启动脚本
  7. 深入浅出:Seata 分布式事务管理器的部署与安装实战指南
  8. CAP应用
  9. 大模型之Transformers , PyTorch和Keras
  10. 【Python爬虫】简单案例介绍2
  11. iOS 设备配置和描述文件管理
  12. Framework Binder架构分解
  13. 双按键控制LED(中断优先级)
  14. ‌DeepSeek模型在非图形智能体的应用中是否需要GPU
  15. 印度zj游戏出海代投本土网盟广告核心优势
  16. 程序化广告行业(84/89):4A广告代理公司与行业资质解读
  17. 【计算机网络】网络基础(协议,网络传输流程、Mac/IP地址 、端口号)
  18. 高并发内存池(定长内存池基础)
  19. STM32 认识STM32
  20. 【AI飞】AutoIT入门一:AutoIT来了,准备让AI动起来
  21. 上海体彩中心2025年“五一”假期体彩销售及兑奖事宜通告
  22. 为溶血性疾病治疗提供新靶点,专家团队在《细胞》发文
  23. 美国海关新规致跨境包裹延误,DHL暂停超800美元对美个人货运
  24. 五一出境游火爆:境外包车订单增长25%,日本酒店价格贵了好几倍
  25. 泽连斯基称乌克兰全境响起防空警报
  26. 商务部新闻发言人就美对我海事、物流和造船等领域宣布最终措施答记者问