我是靠谱客的博主 标致白云,最近开发中收集的这篇文章主要介绍未定义与 double 类型的输入参数相对应的函数 eval_C++零基础4:变量,函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最好的C++教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com
4ebf14e1d7dac2b861d46796ce47125a.png

变量是任何一种语言中写程序都必须的,变量存储在内存中,要么在栈上,要么在heap上。C++是一个比较宽松的语言,在使用变量的时候,并没有很多的规则。 而C++中变量的区别主要就是在内存中所占用空间的大小。

C++中内置的变量类型有char, short, int, long, long long, float, double,bool

int类型的范围取决于编译器和具体的机器类型。 大多数情况下,int类型是使用4个字节存储,相对应的,作为有类型的数据类型,int类型的数据的范围从-2b~2b,也即-2^31~2^31。因为是有类型的,所以最高位用于标识数据的正负性。

如果不想浪费一位来表示正负性,那么可以使用unsigned int。对于char, short, int, long, long long, ,都可以在前面添加unsigned,来表示无符号数。

关于char,代表的就是character,字符,通常是一个字节大小;short是两个字节,long一般也是4个字节,long long 8个字节。在前面提到过,各种类型的区别主要是存放它们的内存的大小不同。那么怎么理解

char variable = 'a';

以及

char variable = 50;

这个的区别并没有很大,因为在内存中存储的时候,最终字符a被表示为了数字97。

#include <iostream>

int main() {
	int v1 = 'a';
	char v2 = 'a';
	int V1 = 97;
	char V2 = 97;
	std::cout << v1 << " " << v2<< std::endl;
	std::cout << V1 << " " << V2 << std::endl;
	std::cin.get();
}

运行结果如下:

960dbebecff350fe1400ae8821ce0dec.png

从上面的例子中可以作为证明,char类型和int类型从存储上而言,都是一样的,也就是都是数字。那为什么要进行区分呢?这里主要是因为,作为程序员,确实有char这种数据类型的需要,那么,如果是char类型的话,std::cout会注意将它打印成字符,而Int类型,则就是数字。

如果想用一个小数,譬如5.5,那么可以使用float和double两种数据类型。关于float,如果使用下面的代码,那么v1实际上是double。

float v1 = 5.5;

0cb03e36b6a567fad20a8454b5001c97.png

如果想要进行区分可以在5.5之后附加上f。

e06b62cabaa62339fead884cdcf520fc.png

float和double的区别是,float是四个字节,而double是8个字节。

关于bool类型:

#include <iostream>

int main() {

	bool v1 = true;
	bool v2 = false;

	std::cout << v1 << std::endl << v2 << std::endl;
	std::cin.get();
}

运行结果:

78841d3c31011475ef23921d23e4a78a.png

在C++中,0就是false,之外的任何其他数字都是true。bool使用一个字节表示。虽然仅用一个bit就可以表示true和false,但是寻址的时候是以字节为单位的。

同时使用sizeof可以来查看每种数据类型所占用的内存大小。譬如可以查看一下

#include <iostream>

int main() {

	bool v1 = true;
	bool v2 = false;

	std::cout << sizeof(v1) << std::endl << sizeof(bool) << std::endl;
	std::cin.get();
}

ac26f0550e7c1cfd97a59164717dae92.png

关于&和*,比较复杂,后面再讨论。

函数就是用来将代码分块的,一段代码写太长不好。Cherno举了个例子说明该用函数的地方用了ctrl+c和ctrl+p容易出错。

譬如说,这样一段代码

#include <iostream>

int Multiply(int x, int y) {
	return x * y;
}

int main() {

	int result = Multiply(3, 2);
	std::cout << result << std::endl;

	std::cin.get();
}

如果现在想多算几个乘法,那么拷贝一下:

#include <iostream>

int Multiply(int x, int y) {
	return x * y;
}

int main() {

	int result = Multiply(3, 2);
	std::cout << result << std::endl;

        int result = Multiply(7, 9);
	std::cout << result << std::endl;

        int result = Multiply(78, 63);
	std::cout << result << std::endl;
	std::cin.get();
}

那么一不小心就出错了。所以应该把一段完整的逻辑都放在一起。

#include <iostream>


int Multiply(int x, int y) {
	return x * y;
}

void MultiplyAndLog(int x, int y) {
	int result = Multiply(x, y);
	std::cout << result << std::endl;
}

int main() {

	MultiplyAndLog(2, 3);
	MultiplyAndLog(8, 9);
	MultiplyAndLog(75, 56);
	

	std::cin.get();
}

函数当然很好,但是不能把每一行代码都塞到一个函数中去。函数调用会涉及到参数入栈,跳转等,也即函数调用是有开销的,而这个开销会拖慢程序的速度。

最后

以上就是标致白云为你收集整理的未定义与 double 类型的输入参数相对应的函数 eval_C++零基础4:变量,函数的全部内容,希望文章能够帮你解决未定义与 double 类型的输入参数相对应的函数 eval_C++零基础4:变量,函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部