一位高中竞赛蒟蒻的大学C++学习日记-第一篇-基本输入输出

本文介绍了C++编程的入门步骤,从HelloWorld程序开始,讲解了头文件#include的作用、命名空间std、主函数main的重要性,以及输入输出的基础概念,包括scanf和printf的使用。通过实例演示了变量定义和基本运算,展示了代码如何实现人机交互。
摘要由CSDN通过智能技术生成

前言

哪有那么多废话,直接开冲
IDE之类的网上随便一搜一大堆,但我这里还是推荐大家使用DevC++或VS Code

人生的第一个程序

相信无数的同学和我一样,HelloWorld都是人生中写的第一个真正属于自己的程序,但是在这短短的几行代码中,作为初学者的我们仍然可以发掘其中的精美之处

#include<cstdio>
using namespace std;

int main()
{
	printf("Hello World!");
	return 0;
	//这里就混用C的标准输入输出了
}

在这个代码中,我们一句一句来仔细分析其用途

头文件概念

1.首先引入眼帘的是

#include<cstdio>

这一句是整个代码的最关键部分,它告诉了这个程序在运行的过程中需要调用的函数在哪里,就像你在翻译文章时需要查字典,当文章中出现一个你不认识的单词(相当于程序中的函数),你就需要去相应的字典中去查找这个单词(你总不可能拿着一个俄语单词查日语字典吧),当你没有这本字典时,你的翻译工作就罢工了,同理,你的程序编译就报错了
再来仔细分析这一句的语法
#include 声明后面是一个准备让计算机调用的系统库文件
<…> 则声明了库文件的名称
而其中所写的 cstdio 才是我们真正需要的那个库
与之相似,C++为我们提供了丰富的模板库,如cstring,algorithm,cmath等等,这些我们以后再将

命名空间概念

2.紧接着的是

using namespace std;

这一句声明了所有的库文件的变量名都在一个叫做‘std’的命名空间中

最重要的函数——主函数

3.然后进入程序真正运行的部分——主函数

int main()
{
	printf("Hello World!");
	return 0;
}

抛去一切外围代码,我们可以得到一个精简的函数,如下

int main()
{
	//这里省略一万行代码
	return 0;
}

这一个函数被我们叫做主函数,是我们整个代码的中心,其他一切函数和运算,都要以主函数起点进行调用

最后,我们的主函数中还剩下了一句

printf("Hello World!");

这一句,我们让这个程序在console(控制台)窗口中打印了 Hello World 这一句话,是程序真正是实现人机交互的代码

初步认识输入输出

与此相近,在我们的c++中,有

scanf("...",...);
printf("...",...);
cin >> ...;
cout << ...;

等等诸多输入输出方式
当有了输入与输出,我们的代码功能就变得丰富了起来

一份优(chou)秀(lou)的代码

比如,我们需要输入两个整数,分别对其进行加减乘除运算并直接输出结果,那么我们就可以有以下代码

#include<cstdio>
using namespace std;

int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d %d %d %d",a+b,a-b,a*b,a/b);
	return 0;
}

在这个短短几行的代码中,仍然有很多值得我们学习的新知识

运算基础——变量定义

跳过上面讲过的重复部分,第一行新的代码就是

	int a,b;

在这一行代码中,我们定义了两个整数型变量:a,b
而前面的 int 则是起到告诉程序我们定义的变量类型的作用
与此相似的,我们还有short,int,long,long long这些整数型变量及其对应的无符号版本
那么问题来了,这么多的变量,它们之间是不是又区别呢?
答案是肯定的,而且很多时候是你的代码能跑出满分和零分的区别,但是,在这一讲,我们不做过多的探讨,因为对于整数,int型变量在大多数时候是完全够用的

交互基础——输入输出

输入详解

接下来,是我们重要的输入部分

	scanf("%d%d",&a,&b);

这一行的知识点较多,让我们来一个一个了解
首先,我们见到的是一个叫做 scanf 的新函数,与 printf 在控制台答应不同,它能够从我们的控制台上读取数字、字符等我们输入的或文件的数据
而内部双引号的 %d 表示我们告诉计算机,下一个我们即将读取的,是一个整数,并且将我们读取到的整数赋值给后面用来储存这个整数的变量,比如后面的a、b
但是,细心的同学肯定注意到了,我们后面的a、b并不是孤零零的,而是在其前面写了一个 & ,这个符号在这里我们称其为取地址符,它可以将我们当前这个变量在内存中的地址读取出来,发送给scanf函数,以便scanf函数可以顺利的赋值

为什么要使用取地址符
我们的一个变量,就如同一个装货物的仓库
我们呢的变量名就是这个仓库的名字
我们对变量进行运算,本质就是对储存在这个变量中的数据进行运算
同理,我们直接读取变量,也是读取的变量内部的信息
但是,当我们用 scanf 向仓库中放入货物时,就出问题了
就像你的快递,小哥问你,你家住哪里?你总不可能回答:我家有电脑,冰箱等等吧
所以,我们在读取时,需要将变量的内存地址,而不是这个变量内部的值返回给scanf函数
当然,有能力的同学也可以直接看scanf的源代码
在这里,明显可以系统调用的时一个指针

  int __cdecl scanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;

输出详解

然后,就是我们重要的输出了

	printf("%d %d %d %d",a+b,a-b,a*b,a/b);

一个再漂亮的函数,没有输出或返回值,一切都没有了意义
在这个函数中我们时整合了运算和输出,函数会优先计算表达式的具体值,然后在在控制台以整数类型输出
而这个双引号的内容,定义了输出的具体格式,在这个样例中,我们的输出格式会和引号内格式一模一样,即 [一个整数][空格][一个整数][空格][一个整数][空格][一个整数]

有了 printf 函数,就可以十分轻松的验证 scanf 中使用的取地址符的功能
代码如下:

#include<cstdio>
using namespace std;
int a;
int main()
{
	printf("a的数值:%d\n",a);
	printf("a的地址(10进制):%d\n",&a);
	printf("a的地址(16进制):%x\n",&a);
	return 0;
}

结尾

到目前为止,你就已经基本认识了C和C++的输入与输出基础,有了基本的交互,再加上中间过程的运算,代码就可以爆发出去穷无尽的潜力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值