这是EasyC++系列第五篇,聊聊C++中long long和__int64。...long long 和 __int64 在C++ Primer当中提到的64位的int只有long long,但是在实际各种各样的C++编译器当中,64位的int一直有两种标准。...因为很多题目会故意把范围弄得很大,考察选手对于数据范围的敏感。 关于long long和__int64,我们有非常多的问题要讨论,我们一个一个来说。...win平台下的一些其他IDE如dev C++,CodeBlocks等也支持long long,因为它们为了和微软的系统兼容,所以也支持__int64。...而要使用scanf和printf又有一个问题,它们是C语言的标准输入输出方式,需要提供标识符来代表变量的类型,那么问题来了long long和__int64的标识符是什么呢?
大家好,又见面了,我是你们的朋友全栈君。...std::string类型转换为usigned long,usigned long类型别名ULONG std::string sStationID="123"; ULONG nStationID = atol...(sStationID.c_str()); usigned long 类型转换为std::string usigned long taskId=12; CString strTaskId; strTaskId.Format...("%lu",taskId); std::string strId=strTaskId; 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128835.html原文链接
整型分为: 正值 负值 1.3 整型short、int、long和long long 计算机内存的基本单元:位(bit) 。 字节(byte) 通常是8位的内存单元。...int n_int = INT_MAX; short n_short = SHRT_MAX; long n_long = LONG_MAX; long long n_llong...= LONG_MAX; /**使用sizeof()运算符, 不是函数 * * 可对类型名(如int)或者是变量名(如n_short)使用,对变量名使用时,括号可有可无。...句点被称为成员运算符*/ std::cout << std::endl; return 0; } 成员函数cout.put() ———— C++ OOP概念中的成员函数,成员函数归类所有...表达式中包含不同的类型时,C++对值进行转换 将参数传递给函数时,由函数原型控制,C++对值进行转换 数值转换中存在的潜在问题 [潜在的数值转换问题.png] 类型的强制转换 强制转换本身不会修改变量本身
.回调函数的代码样例 3.使用回调函数的原因 三,参考阅读 一,函数指针 1.函数指针的概念 与数组类似,函数在内存中也有地址,函数在内存中的地址是其机器语言代码的开始位置,而函数指针则存储函数的内存地址作为变量...通过传递不同的函数给函数指针,可以让一个函数在不同的时间分别调用不同实现的其他函数,这些函数都有一个共同特点,那就是它们的返回值类型还有参数的类型和个数必须相同,这个类似于int类型的指针只能指向包含int...long get_max(const long* array, size_t size); //获得数组的最大值函数 long (*fun_ptr)(const long*, size_t){get_max...long data[]{ 23, 19, 4, 50 }; long max_data = (*fun_ptr)(data, std::size(data)); 方式二,和函数调用的方式类似,直接利用函数指针的名称来调用...回调函数在两个独立的类或函数之间建立了一种通信渠道,可以通过给主函数传递不同的参数来随时让中间函数调用不同的底层函数。
为了代码的可移植性,需要知道某种整数类型的极限值时,应该尽量使用这些常量 SCHAR_MIN , SCHAR_MAX :signed char 的最小值和最大值。...SHRT_MIN , SHRT_MAX :short 的最小值和最大值。 INT_MIN , INT_MAX :int 的最小值和最大值。...LONG_MIN , LONG_MAX :long 的最小值和最大值。 LLONG_MIN , LLONG_MAX :long long 的最小值和最大值。...UCHAR_MAX :unsigned char 的最大值。 USHRT_MAX :unsigned short 的最大值。 UINT_MAX :unsigned int 的最大值。...ULONG_MAX :unsigned long 的最大值。 ULLONG_MAX :unsigned long long 的最大值 4.
int 的最大值 printf("int %d\n",INT_MAX); printf("long int %ld\n",LONG_MAX); printf("long long...int %lld\n", LLONG_MAX); // 注意 long long int 所用的占位符 return 0;} 几个常用的字符型常量 65 运算符、输入与输出 运算符 两侧操作数做加法运算...&c); int max = a; // 使用辅助的变量存储最大值 if(max < b){ max = b; } if(max < c){...题目3:鸡兔同笼 一个笼子中同时装有一些鸡和一些兔,输入头和脚的个数,输出鸡和兔的数目,否则输出无法计算。...题目9:最大公约数和最小公倍数 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。...wchar_t 是这样来的: typedef short int wchar_t; 所以 wchar_t 实际上的空间是和 short int 一样。...一些基本类型可以使用一个或多个类型修饰符进行修饰: signed unsigned short long 下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。...注意:long int 8 个字节,int 都是 4 个字节,早期的 C 编译器定义了 long int 占用 4 个字节,int 占用 2 个字节,新版的 C/C++ 标准兼容了早期的这一设定。...,sizeof() 函数用来获取各种数据类型的大小。
位,因为是使用科学记数法表示,而6 ~ 7 位又是根据尾数来得出来的,尾数又规定在1到2之间,也就是说最高位必须是1,而后面的数可以是000000(23个0),或者最大值为2,也就是1.1111111(...#define MAX 123456789 const int Max 12345679 区别在于#define 不必定义该常量属于什么类型,是int,还是long int,而const定义的常量必须指明类型...#define MAX 12456789 std::cout <<sizeof(MAX) << std::endl; 来看运行结果: ? 结果是4,说明C++将MAX保存为int类型。...如果我们把这个数变一下: #define MAX 36456465ll std::cout <<sizeof(MAX) << std::endl; 运行结果: ?...运算符的优先级和结合性 简单来说先考虑优先级,再考虑结合性。
可以查看 头文件,int和其他类型的大小是由 中的宏定义来决定的: INT_MAX //随便写一个定义的常量,鼠标右击转到声明可以跳到limits.h头文件查看,...2.sizeof和strlen的区别 然后说一下sizeof和strlen的区别,可能有很多萌新记不住这两个的区别: sizeof() 是运算符,它不是函数,不要因为它长的像函数,就上它的当,sizeof...* _Str); 该函数的功能是返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机存储的,该函数实际完成的功能是从代>表该字符串的第一个地址开始遍历,知道遇到结束符NULL,返回的长度不包括...5.有无符号类型之间的转换 下面再往深走一点,我们来说说有符合数和无符号数类型之间的转换,也就是二进制01之间的转换,说之前,我们需要先复习一下原码,反码和补码: 原码: 原码就是在最高位符号位用于表示符号...这也就解释了为什么unsigned int usa_1 = 10 和 int sa_1 = -100相加会得到那么大的一个数,也就是常说的最大值加1变为0的故事。
您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。 ...wchar_t 是这样来的: typedef short int wchar_t; 所以 wchar_t 实际上的空间是和 short int 一样。...一些基本类型可以使用一个或多个类型修饰符进行修饰: signed unsigned short long 下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。...**注意:**long int 8 个字节,int 都是 4 个字节,早期的 C 编译器定义了 long int 占用 4 个字节,int 占用 2 个字节,新版的 C/C++ 标准兼容了早期的这一设定...,sizeof() 函数用来获取各种数据类型的大小。
C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。...a,b可以省略 int max(int,int); void show(); 函数定义: 函数类型 函数名(参数列表) { 函数体; } eg: int max(int a,int b) {...= npos);//index位置插入常量str从index_str开始的count个字符,count可以表示的最大值为npos.这个函数不构成重载 npos表示一个常数,表示size_t的最大值,string...int arr[10],len; int *p1 = &arr[2],*p2 = &arr[5]; len = p2-p1;//arr[2] 和arr[5]之间的元素个数 3 new和delete运算符...函数模板 "max" 实例参数类型为:(double, int) return 0; } 19.2 类模板 声明了类模板,就可以将类型参数用于类的成员函数和成员变量了。
例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。 //函数1. int max(int x,int y); {return(x>y)?...x:y ;} 但如果在主函数中,我们分别定义了 char a,b; 那么在执行max(a,b);时 程序就会出错,因为我们没有定义char类型的重载版本。...现在,我们再重新审视上述的max()函数,它们都具有同样的功能,即求两个数的最大值,能否只写一套代码解决这个问题呢?这样就会避免因重载函数定义不 全面而带来的调用错误。...模板的特化 如果我们打算给模板函数(类)的某个特定类型写一个函数,就需要用到模板的特化,比如我们打算用 long 类型调用 max 的时候,返回小的值(原谅我举了不恰当的例子): template...// 这代表了下面是一个模板函数 long max( long a, long b ) // 对于 vc 来说,这里的 是可以省略的 { return a > b ?
vs2015 #include using namespace std; int main() { bool b; char c;short s; int i;...* 2 4 8 short 2 2 2 int 2 4 4 long 4 4 8 long long 8 8 8 注:long类型在不同编译器中的占位不一样: 32位时,VC++和GCC都是4字节;...C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。...int arr[10],len; int *p1 = &arr[2],*p2 = &arr[5]; len = p2-p1;//arr[2] 和arr[5]之间的元素个数 3 new和delete运算符...函数模板 "max" 实例参数类型为:(double, int) return 0; } 19.2 类模板 声明了类模板,就可以将类型参数用于类的成员函数和成员变量了。
1.创建函数-定义、提供原型和调用 2.两个恒等式: arr[i] == *(arr + i) &arr[i] == arr + i 3.默认情况下,C++函数按值传递参数,函数中的形参就是新的变量...编写一个接受3个参数的函数:int 数组名、数组长度和一个int值,并将数组的所有元素设为该int值。...编写将double数组名和数组长度作为参数,并返回该数组中最大值的函数。该函数不应该修改数组的内容。...c++将*"pizza"中"pizza"解释为其第一个元素的地址,在使用*运算符将得到第一个元素的值,即字符p。...程序将使用这些函数来填充数组,然后显示数组;反转数组,然后显示数组;反转数组中除第一个和最后一个元素之外的所有元素, 然后显示数组。
查找,作为应用最为广泛和最基础的算法思想之一,几乎在所有应用程序之中都有它的思想身影。...二分查找 下面来看看看二分查找,二分查找适用于排序之后的数组,算法的思想也很简单:首先对数组进行排序,每次用数组中的中间那个数字和要查找的数字相比较,如果数组中间的那个数字大于要查找的那个数字,那么在数组的左半边继续执行二分查找...4、在 1 的右边和 3 的左边就只有 2 了,那么数字 2 就被找到了。...: #include #include using namespace std; const int N = 1046527; const int MAX_LEN...= 14; char save[N][MAX_LEN]; int book[N]; // 标记字符串位置的数组 int sum; // 统计储存的字符串总数 int getInt(char
sizeof不是一个函数,而是一个运算符。作用是计算所占内存大小。 三、字符型 考虑到A-Z的ASCII码为65-90,a-z的ASCII码为97-122。这两段的数据范围,用一个字节就可以表示。...: 1 四、整型 C和C++中,整型有四种:int、unsigned int、long long、unsigned long long。...unsigned int可以简写为unsigned。 int的最大值是01111111,11111111,11111111,11111111,即十进制的231 – 1 = 2 147 483 647。...所以int的数据表示范围大概在-21亿到21亿之间。...虽然float和double能表示的整数范围比int和long long能表示的整数范围大的多,但因为浮点数无法精确表示,所以要表示整数(精确值)时,只能用整型变量来表示,不能使用浮点型变量来表示。
数据类型 大致范围 占用位数 备注 int -2*109~2*109 32 long long -9*1018~9*1018 64 long long bignum = 123456789012345LL...注意关系运算符的写法是=。 逻辑运算符:&&、||、!。 位运算符:>、&、~、|、^。 注意数组名称本身代表了数组第一个元素的地址,所以不需要再加取地址运算符。...如果要输入“3 4”之类用空格隔开的两个数字,两个%d之间可以不加空格,因为除了%c,scanf对其他格式的输入是以空白符为结束判断标志的,所以会自动跳过空格。 此外,%c是可以读入空格和换行的。...std; int main(void){ int first, second; while(scanf("%d%d", &first, &second)!...常用的math函数 这里的函数在使用的时候要记得#include 。
全部丑数都找出来 MAX最大的整数 i [1--MAX] i2 j[ i--MAX] j3 k[j--MAX] k*5 方法2 bfs 树的层次遍历 ? 我想到的 ?...为啥是负数 long 2147483648~2147483647 long long的最大值:9223372036854775807 long long的最小值:-9223372036854775808...Coin Change 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。...; //辅助交换函数 void Swap(int &a, int &b) { int temp = a; a = b; b = temp; } //堆排序的核心是建堆,传入参数为数组...,因为len长度已经建过了,从len-1开始 { // pop_heap() 从堆中取出一个元素 Swap(a[0],a[j]);//交换首尾元素,将最大值交换到数组的最后位置保存
9.1 新类型 long long int 64位 在本文中,我们将讨论 C++ 中的 long long int 数据类型。...C++ 中的 long long int 数据类型用于存储 64 位整数。它是存储整数值的最大数据类型之一,不像 unsigned long long int 正数和负数。...long long int 数据类型的一些属性是: 作为有符号数据类型,它可以存储正值和负值。 采用 64 位大小,其中 1 位用于存储整数的符号。...long long int 中可以存储的最大值作为常量存储在 头文件中。其值可用作 LLONG_MAX。...下面是在 C++ 中获取可以存储在 long long int 中的最大值的程序: // C++ program to illustrate the maximum // value that can
领取专属 10元无门槛券
手把手带您无忧上云