您的位置:首页 > 编程语言 > C语言/C++

学习笔记:C/C++的基础知识

2020-03-24 18:46 267 查看

本文章是本人所学知识简单总结的,不喜轻喷(小声)。

1、头文件:
语法:#include<头文件名>
作用:
#include <头文件名> 表示把头文件名中的所有内容拷贝到“这里”。
eg:
std::cout函数的头文件: iostream (#include )
system函数的头文件: Windows.h (#include <Windows.h>)

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

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

位置:
要求放在程序最前面。
如果放在后面,在之前出现的关于头文件的函数就会出错。

2、main函数:
作用:
main 函数是程序的唯一入口。 也就是说,程序运行时,首先从 main 函数开始执行。 一个程序,必须要有一个 main 函数,而且也只能有一个 main 函数。

格式:
法1(常用):

int main(void){

}

法2(初学者仅需了解):
int main(int argc, char* argv){

}

main 函数的返回值:
main 函数应该用 return 返回一个 int 类型数据,也就是说,必须返回一个整数。 一般用法: 程序成功结束,则 main 函数返回 0。
程序有异常,则返回一个大于 0 的整数。

其他函数:
使用已有的函数,来完成自己的工作,而不是一切都由自己来实现。

这些是可以使用在程序中的其他函数:
1)C 标准库
2)C++标准库
3)第三方开源框架
4)公司内已经开发好的函数
5)程序员自己定义的函数

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

eg:

std::cout << "我的年龄是" << 100;

"我的年龄是"是字符串常量,"100"是整形常量。
std::cout << "007"<< "是他的代号";

"007"是字符串常量。

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

4、cout 和 printf 的使用:

实例:

std::cout << “你好!” ;

std::cout << “你好!” << std::endl;

std::cout << std::endl;

std::cout <<“工资:” << 30000;

std::cout <<“工资: 30000”;

std::cout << 3.1415;

使用要求:
需要包含头文件 #include ,注意不是#include <iostream.h>。
std 是一个命名空间(后面会详细讲解)。
cout 是 std 命名空间内的一个“对象”。
endl 也是 std 命名空间内的一个对象,用来表示“回车符”(换到下一行的最前面)
对象:简单理解为一个具体的实体。
std::cout << 相当于调用了一个特殊的函数(但不是函数),用来打印数据。

std::cout << “工资:” << “30000”; 等效于:
std::cout << “工资”;
std::cout << 30000;

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

C 风格的打印:
实例:

printf(“你好!”);

printf(“你好!\n”);

printf(“\n”);

printf(“工资:30000”);

printf(“工资:%d”, 30000);

printf(“工资:%d 年假:%d”, 30000, 12);

printf(“%f”, 3.1415);

printf(“圆周率:%f”, 3.1415);

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

使用要求:
需要包含头文件 #include <stdio.h>
特别注意:
std::cout 和 printf 还有很多用法,现在只需要掌握以上最常用的用法,其他的用法现在不需要关注。
打印语句的使用场合:
‘打印’常常指:把信息输出到“标准输出设备”(标准输出设备,就是显示器中的“终端”)。
3. 控制台应用程序的输出
4. 程序调试 Bug 的重要手段

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

法1:

#include <iostream>
#include <string>

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

using namespace Japan;

int main(void) {
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << population << std::endl;
std::cout << "首都:" << China::capital << std::endl;
std::cout << "人口:" << China::population << std::endl;
system("pause");
return 0;
}

法2:

#include <iostream>
#include <string>

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

//注意:没有 namespace
//直接指定命名空间中的标识符,而不是整个域名
using China::capital;
using Japan::population;
int main(void) {
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << population << std::endl;
system("pause");
return 0;
}

法3:

#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: 不明确的符号

错误原因:
命名空间China中有population,而又单独声明了Japan的population。

解决方案:
指定完整的域名(Japan::population )来表示。

6、使用注释

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

需要注释的内容:

  1. 重要变量名的作用(用来表示什么)
  2. 比较复杂的算法思想
  3. 程序中的关键步骤

==注释的方式:==有两种注释方式

  1. 单行注释 // 在行尾,或代码的上一行。
    在代码的下一行也可以,但很少有人这么做。
  2. 多行注释 /* */
    不支持嵌套。

注意:
不要为了注释而注释! 过多的注释,反而有害!会把真正需要注意的东西淹没。 eg:int i; //定义了一个变量 i 。

注释的风格:
函数的注释,有特别的“姿势”,可以让代码显得更规范。

  1. 在行尾注释 使用//注释 。
  2. 在代码的上一行使用//注释 。
  3. 多方内容的注释,使用 /* */。
  4. 函数的注释。

良好的注释风格,是一个程序员的基本修养。

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
xianzts钟钟 发布了2 篇原创文章 · 获赞 2 · 访问量 68 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: