
数据类型
文章平均质量分 70
天桥雨
这个作者很懒,什么都没留下…
展开
-
C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型) 常量和引用,必须通过参数列表进行初始化。 静态成员变量的初始化也颇有点特别,是在类外初始化且不能再带有static关键字,其本质见文末。参考下面的代码以及其中注释:#in转载 2016-08-17 14:45:56 · 222 阅读 · 0 评论 -
C语言知识点学习之结构体成员变量后加冒号
typedef struct xx { unsigned int a:2; unsigned int b:3;}Xx;//“unsigned int a:2;“中后面的":2"表示成员a只占俩个位,而不是我们传统认为的占//4个字节这样整个结构体大小就为4个字节而不是8个字节,这样就可以达到节省内存//的目的,缓解芯片资源紧张(这里以32位编译器转载 2017-01-12 16:22:17 · 699 阅读 · 0 评论 -
一些编程基础的注意(持续更新)
形参如果是字符或整型数组的数组名,用for循环赋值或strcpy赋值函数结束后可以保留这些值,而形参如果是指针的话,不能用strcpy赋值,而是直接等于,函数结束后不可以保留赋的值。 >>的时候如果超过最低位了,则超过的部分自动消失,无需先&再>>。如11110101,如果需要取高四位放在低四位上,不需要(11110101 & 11110000)>>4,直接11110101>>4即可,原创 2016-12-05 19:05:15 · 307 阅读 · 0 评论 -
关键字static/const的作用
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区)。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函转载 2016-12-15 13:08:27 · 296 阅读 · 0 评论 -
关于fputc、fgetc、printf、sprintf、sprintf_s以及fprintf
1.printfprintf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("", )。格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还原创 2016-12-09 17:44:55 · 2218 阅读 · 0 评论 -
混合编译:在c中使用c++中的类对象和类成员函数
C中没有类和对象的概念,所以不识别C++的类对象和成员函数, 而如果要在c中使用c++的对象和成员函数应该怎么办呢?我们可以自己写一个c++普通函数封装,然后在c文件中用void*来调用该c++类对象,用封装函数来调用该普通函数,具体如下:PackBuilderApi.h//c和c++文件共用#ifndef _PACK_BUILDER_API_H#define _PACK_B原创 2016-12-09 16:38:42 · 548 阅读 · 0 评论 -
混合编译:c++文件调用c文件变量和函数、c文件调用c++文件变量和函数
1.c++文件调用c文件变量和函数前言:以前见到extern "C"这样的语句,只是简单地知道跟外部链接有关,但是没有深刻理解它的意思。首先,为什么要使用extern "C"修饰符?C++调用其它语言的函数,由于编译器生成函数的机制不一样,所以需要经过特殊处理,才可以调用。调用C语言的函数,需要在函数声明的地方语句extern "C"。如果不使用该语句,在链接的时候,编译器就会报以下这转载 2016-12-02 19:13:37 · 879 阅读 · 0 评论 -
C++模板(template)使用介绍
1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float m转载 2016-12-07 17:31:10 · 621 阅读 · 0 评论 -
VS2012 CString转char*时,每个字符后面都会多出一个\0的解决办法
CString转字符数组时,数组中每个字符后面都会多出一个\0 的原因: 是Unicode字符集的问题。选择项目->项目属 性(或直接按alt+F7)->配置属性,在右边找到“字符集”,将“使用Unicode字符集”改为“使用多字节字符集”。保存之后需要重新生成 解决方案,然后通过网上介绍的多种方法从CString转字符数组每个字符后面再也不会多出\0字符了。 实际应用转载 2016-10-28 18:17:20 · 2389 阅读 · 0 评论 -
关于动态数组
有时候我们数组的个数n不确定,需要先给n赋值,而建立数组变量的时候又不支持个数为变量(不支持a[n]),这个时候就可以通过动态数组来解决,方法如下:一维#include #include int main(){int n1,i;int *array;puts("输入一维长度:");scanf("%d",&n1);array=(int*)malloc(原创 2016-11-03 20:31:28 · 423 阅读 · 0 评论 -
关于数组的赋值
1、未初始化,同时数组中的某些元素未被赋值时,其值有两种可能,一种是全局数组,被编译器初始化为0,一种是局部数组,为随机数。在vc6.0的debug版程序中一般是0xcc的值。这个值实际上是int 3断点机器码。2、已初始化,不管是局部数组还是全局数组,编译器都会将其未被赋值的元素初始化为0。#include stdio.h> int a[2]; //此时编译器将a[0] a[1]转载 2016-08-29 17:14:19 · 909 阅读 · 0 评论 -
MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
MFC数组类CByteArray:CDWordArray:CPtrArray:CUIntArray:CWordArray:CStringArray:常用成员函数1.int Add( ARG_TYPE newElement ); throw( CMemoryException );2.TYPE& ElementAt( int nIndex );3.转载 2016-08-17 17:21:54 · 1369 阅读 · 0 评论 -
CString,string 和 Char*比较
CString,string 和 Char*比较(一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT>CString)为VisualC++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有cha转载 2016-08-17 17:16:30 · 691 阅读 · 0 评论 -
map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识转载 2016-08-17 16:54:51 · 280 阅读 · 0 评论 -
各种数据类型的取值范围
速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong转载 2017-02-08 19:40:06 · 1055 阅读 · 0 评论