![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
zhaoshuzhaoshu
这个作者很懒,什么都没留下…
展开
-
Typedef的四大用途
1.用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:ch原创 2013-08-16 16:21:52 · 643 阅读 · 0 评论 -
UTF-8与Unicode编码及其相互转换
1. UTF-8UTF-8:UnicodeTransformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人原创 2014-08-29 17:03:18 · 2170 阅读 · 0 评论 -
通过函数调用,获取字符串的方法
通过函数调用的方法,获取字符串,主要有四种方式:1. 使用堆空间,返回申请的堆地址,注意释放2. 函数参数传递指针,返回该指针;或者传入指针,对指针的内容进行修改,无需返回,调用函数后,指针的内容已修改。3. 返回函数内定义的静态变量(共享)4. 返回全局变量 /*使用堆分配的内存,地址是有效,但这种方式需要注意,必须由使用的地方将返回的地址free掉 */char原创 2014-07-15 17:22:27 · 1590 阅读 · 0 评论 -
四种最基本的配置文件(profile)
1.通用访问配置文件(Generic Access Profile, GAP) GAP是所有其他配置文件的基础,它定义了在蓝牙设备间建立基带链路的通用方法.除此之外,GAP还定义了下列内容:①:必须在所有蓝牙设备中实施的功能②:发现和链接设备的通用步骤③:基本用户界面术语. GAP确保了应用程序和设备间的高度互操作性,还允许开发人员利用现有的定义更加容易地定原创 2014-08-05 13:56:14 · 5275 阅读 · 0 评论 -
字符数组与字符指针的区别与联系
1.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明语句:char string[ ]="This is a string.";原创 2014-07-10 11:15:42 · 3833 阅读 · 1 评论 -
大端小端格式详解
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha原创 2014-07-09 16:30:01 · 81983 阅读 · 9 评论 -
字符数组的定义与使用详细解析
1. 字符数组的定义:用来存放字符量的数组称为字符数组。形式数值数组相同。例如: char c[10];由于字符型和整型通用,也可以定义为int c[10],但这时每个数组元素占2个字节的内存单元。字符数组也可以是二维或多维数组。例如: char c[5][10];即为二维字符数组。 2. 字符数组的初始化第一种方法是分别对每一个元素进行赋值操作:原创 2014-07-10 17:31:14 · 55238 阅读 · 0 评论 -
C语言中extern的用法
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。能够被其他模块以extern修饰符引用到的变量通常是全局变量。还有很重要的一点是,externint v可以放在a.c中的任原创 2014-08-01 17:23:38 · 3255 阅读 · 0 评论 -
移位操作及其在数据类型转换中的作用
一.对移位操作的基本概述:1、什么样的数据类型可以直接移位char、short、int、long、unsigned char、unsigned short、unsigned int、unsigned long都可以进行移位操作,而double、float、bool、long double则不可以进行移位操作。 2、有符号数据类型的移位操作对于char、short、int、lon原创 2014-06-17 15:17:13 · 6796 阅读 · 0 评论 -
struct结构类型与typedef
1. struct结构体定义的形式struct{成员表列}变量名表列1,变量名表列2; 例如structlist{ int a; char c; stuct list *next;};(注意这个分号不能少) 这个结构体的类型名是structlist ;struct只是声明结构体需要的关键字。如果你要定义一个结构体变量 你就可以 :结构体原创 2014-07-21 15:18:34 · 755 阅读 · 0 评论 -
枚举类型详解
1. 定义:枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。不要和联合混淆。 enum weekday{ sun,mou,tue,wed,thu,fri,sat };enum weekday a,b,c;枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };enum 枚举名{枚举值1,枚举值2,枚举值3,.....}原创 2014-07-21 15:20:55 · 904 阅读 · 0 评论 -
函数参数传递方式详解
1. 函数参数传递方式之一:值传递 (1)值传递的一个错误认识先看如下的一个问题:void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数 */{ int tmp; tmp = x; x= y; y= tmp; printf("x = %d, y = %d.\n", x, y);}问:原创 2014-07-21 09:23:14 · 2272 阅读 · 0 评论 -
memcpy和memmove的区别与联系
memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count); 他们的作用是一样的,唯一的区原创 2014-04-08 20:04:44 · 572 阅读 · 0 评论 -
strlen 和 sizeof的区别与解析
char *c="abcdef";char d[]="abcdef";char e[]={'a','b','c','d','e','f'};printf("sizeof(c):%d\tstrlen(c):%d\n",sizeof(c),strlen(c));printf("sizeof(d):%d\tstrlen(d):%d\n",sizeof(d),strlen(d));pr翻译 2014-04-23 13:19:56 · 1420 阅读 · 0 评论 -
C++——派生类的构造函数实例
1、简单的派生类构造函数声明形式:派生类构造函数名(总参数列表):基类构造函数名(参数列表){派生类中新增加成员初始化语句}#include#includeusing namespace std;class student{ public: student(int n=0,string nam="null",char s='F'):num(n),n原创 2014-02-20 14:29:47 · 1122 阅读 · 0 评论 -
static关键字的用法-包括内存分配
C/C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.3.1面向过程设计中的static1.3.1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1转载 2014-02-18 11:46:05 · 2535 阅读 · 0 评论 -
常见的内存错误及其对策
内存管理 常见的内存错误及其对策 *内存未分配成功却使用了它: 在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查 ;如果使用malloc或者new来申请内存,应该用if(p==NULL)或if(p!=NULL)进防错处理。 *无论用何种方式创建数组,都别忘了原创 2013-12-15 20:26:21 · 632 阅读 · 0 评论 -
typedef 与 #define的区别
1 两个案例案例一:通常讲,typedef要比#define要好,特别是在有指针的场合。请看例子:typedef char *pStr1;#define pStr2 char *;pStr1 s1, s2;pStr2 s3, s4;在上述的变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char,不是我们所预期的指针变量,根本原因就在于#define翻译 2013-08-16 16:24:13 · 943 阅读 · 0 评论 -
常用的转义字符
所有的转义字符和所对应的意义:转义字符意义ASCII码值(十进制)\a响铃(BEL)007\b退格(BS) ,将当前位置移到前一列008\f换页(FF),将当前位置移到下页开头012\n换行(转载 2015-05-16 13:32:22 · 1427 阅读 · 0 评论