【C++】从C语言到C++

linbojue
• 阅读 1

着手C++的第一个代码

#include using namespace std; int main(void) { cout << "hello world" <<endl; return 0; } AI写代码 cpp 运行 一、第一行 #include 是包含头文件,头文件的名字叫iostream,以#include< >的形式包含。 在C++中要完成输入输出操作会涉及到 iostrean 文件中的多个定义,所以就要包含这个头文件。例如:代码中的cout是输出流对象,cout就是用来完成输出的,使用cout就要包含头文件 iostream。

iostream文件中的io指的是输入(进入程序的信息,简单来说就是给程序输入数据)和输出(从程序中输出信息,简单来说就是程序会打印数据在屏幕上)。

C++ 中的 cin 和 cout 与C语言中的 scanf 和 printf 作用相似,但是 cin cout 使用起来更加方便。(这里不过多介绍cin和cout,之后会详细讲解)

那么除了iostream这个头文件以外,C++中还有很多头文件,每个头文件都包含特定的工具,如 cmath 就是数学头文件,跟C语言中的 math.h 功能一样。在代码中如果使用了某个头文件中的定义,就得包含对应的头文件,如使用了sqrt(),那么就要在上方加上cmath。

#include

#include //c++标准头文件

using namespace std;

int main() { // 1. 计算double类型的平方根 double num1 = 16.0; double res1 = sqrt(num1); cout << "√" << num1 << " = " << res1 << endl; // 输出:√16 = 4

// 2. 计算float类型的平方根(C++重载特性)
float num2 = 25.0f;
float res2 = sqrt(num2);
cout << "√" << num2 << " = " << res2 << endl;  // 输出:√25 = 5

// 3. 整数转浮点型计算(避免精度丢失)
int num3 = 30;
double res3 = sqrt(static_cast<double>(num3));  // 显式转换更规范
cout << "√" << num3 << " ≈ " << res3 << endl;  // 输出:√30 ≈ 5.47723

// 4. 负数处理(返回NaN,部分编译器会提示域错误)
double num4 = -9.0;
double res4 = sqrt(num4);
cout << "√" << num4 << " = " << res4 << endl;  // 输出:√-9 = nan

return 0;

} AI写代码 cpp 运行

1.在C语言中头文件的扩展名是 .h,但是在C++中的用法发生了一些变化,对C的头文件保留了扩展名.h,但是C++自己没有文件扩展名了。

2.有些C的头文件被转换成C++头文件就被重命名了,去掉了.h扩展名,并在文件名的前面加上了前缀C(表示来自C语言),如cmath。但是要注意的是,有时头文件的C语言版本和C++版本相同,有时,新版本做了一些修改。

(此图非本人创作,搬运自老师)

C++库函数相关头文件:https://zh.cppreference.com/w/cpp/header

二、第二行代码using namespace std; using namespace std;这句代码的意思是:使用名字空间std(名字空间也叫命名空间)。

为了更好的理解什么叫名字空间,要先举一个例子: 一个学校里有三个叫张三的人,为了防止名字冲突,学校就把三个张三分别安排到了三个教室。

把一班二班三班想象成一个个的空间,把那些可能相似的名字隔离开来,这样就很好的解决了名字冲突的问题。

本质:1、将名字进行了隔离 2、在使用名字之前先交代了使用哪个班的名字。

那么名字空间就类似这么一个班级的空间。

在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称如果都存在全局作用域中,可能会导致很多冲突。使用名字空间的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

std是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使用标准库中的内容时,就需要加上:using namespace std;当有了这句代码的时候,表示名字空间std中信息都是可见和可用的,如:cin、cout、endl等。

除了C++中自带的命名空间以外,用户也可以单独创建自己的命名空间。

直接使用using namespace std;,就意味着后续在std这个名字空间中的各种定义都可以直接使用,但我们往往只是使用部分。所以名字空间还有另一种使用方法:

#include int main(void) { std::cout << "hello world" <<std::endl; return 0; } AI写代码 cpp 运行 代码中的std::cout的意思就是使用std名字空间中的cout。

!注意在算法竞赛中是有时间限制的,采用std::这种写法在竞赛中比较麻烦,耽搁时间。

但在企业中开发中基本上都是这样写的,这样写更好的避免名字冲突的问题。

还有注释提一嘴,单行注释用//,多行注释/* */

#include using namespace std;

int main(void) { int num; //num 其实是一块空间,可以存放一个整数 cin >> num;//输入操作,输入一个整数存放到num中 cout << num << endl;//输出操作,将num的值打印在屏幕上 return 0; }

/int main(void) { int num; cin >> num; cout << num << endl; return 0; }/ AI写代码 cpp 运行

———————————————— 版权声明:本文为CSDN博主「June_Liu_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/June_Liu_/article/details/156801060 https://infogram.com/9862pdf-1h0n25opqj80z4p https://infogram.com/9862pdf-1h7v4pd0lqn584k https://infogram.com/9862pdf-1hnp27eqdj3yn4g https://infogram.com/9862pdf-1h984wv15g3md2p https://infogram.com/9862pdf-1h1749wqzjvlq2z https://infogram.com/9862pdf-1h0n25opqjyyl4p https://infogram.com/9862pdf-1h7v4pd0lqw9j4k https://infogram.com/9862pdf-1hxj48mqgjpr52v https://infogram.com/9862pdf-1h0r6rzwyqpkw4e https://infogram.com/9862pdf-1h1749wqzjv0l2z

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
Mysql —— linux下使用c语言访问mySql数据库
在Linux编写完c代码运行出现没有找到mysql.h是因为没有指定头文件的位置和库文件的位置。命令:gcc\I/usr/include/mysqlXXXX.c\L/usr/lib/mysqllmysqlclientoXXXXXXXX.c:你要编译的文件;XXXX:编译完的文件名;(详解:需要在gcc编译时指定头文件地
Stella981 Stella981
4年前
Rust FFI 编程
当我们拥有一组具有良好声明的头文件时,自己定义C库的RustFFI绑定函数是毫无意义的。我们可以使用 bindgen 这种工具从C库的头文件生成RustFFI绑定函数。然后,我们运行一些测试代码以验证其是否正常运行,并对它们进行调整,直到正确为止。本文我们将通过一个示例,讨论如何使用 bindgen 将C库中的函数
Wesley13 Wesley13
4年前
Java中的native关键字
一. 什么是NativeMethod  简单地讲,一个NativeMethod就是一个java调用非java代码的接口。一个NativeMethod是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去
Wesley13 Wesley13
4年前
C++学习_从C到C++
一、引用的概念和应用 1.引用的概念下面写法定义了一个引用,并将其初始化为引用某个变量。类型名&引用名某变量名;intn4;int&rn;//r引用了n,r的类型是int&某个变量的引用,等价于这个变量,相当于该变量的一个别
Wesley13 Wesley13
4年前
C++ 构造和析构的顺序
直接用代码说明问题:include<iostreamusingnamespacestd;classA{public:A(inta0):_a(a){cout<<"ConstructorA!"<<_a<<endl;}~A(){cout
Wesley13 Wesley13
4年前
C++——Linux——Hello World!
include  //include位置:/usr/includeincludeusingnamespacestd;intmain(){cout<<"HelloWorld"<     return0;}gotesttest.cpp//用ggcc编译会出
Wesley13 Wesley13
4年前
C++笔记003:从一个小程序开始
 原创笔记,转载请注明出处!点击【关注】,关注也是一种美德~安装好VS2010后,从第一个小程序开始。在学习C语言时,我首先输出了一个程序员非常熟悉的对这个世界的问候:helloworld!我依旧输出这样一句问候!在Hello.cpp文件中输入内容:include"iostream" //包含C的头文
Wesley13 Wesley13
4年前
C++ 里的常用头文件
<assert.h验证程序断言<complex.h支持复数算术运算<ctype.h字符类型<errno.h出错码<fenv.h浮点环境<float.h浮点常量<inttypes.h整型格式转换<iso646.h替代关系操作符宏<limits.h实现常量<locale.h局部类别<
小万哥 小万哥
1年前
深入理解 C++ 语法:从基础知识到高级应用
C语法让我们将以下代码分解以更好地理解它:示例cppincludeusingnamespacestd;intmain()cout<<"HelloWorld!";return0;示例解释第1行:include是一个头文件库,它让我们可以使用输入和输出对象
linbojue linbojue
7小时前
C++学习——C++基础
1.缺省//全缺省voidFunc1(inta10,intb20,intc30)cout<<"a"<<a<<endl;cout<<"b"<<b<<endl;cout<<"c"<<c<<endl;//半缺省voidFunc2(inta,intb,intc)c