上一页 1 ··· 16 17 18 19 20

2011年8月31日

定义struct类型

摘要: 看下下面的代码:typedef struct tagUser{ char* pItem; short Age; tagUser* pNext;}User;typedef: 定义一个新类型或为一类型起个别名。struct: 表示为一结构体类型.tagUser:类型名称。以后可以以此类型声明变量,如 tagUser myUser;User: 类型 tagUser的别名,即它们是同种类型,可以这样声明一变量: User myuser;我们在User类型的结构体内会看到pNext的指针,它指向下一个本类型的地址,它的类型为struct tagUser,即我们所说的链表。.如果我们变成以下代码... 阅读全文

posted @ 2011-08-31 10:39 天上星 阅读(3888) 评论(0) 推荐(0) 编辑

2011年8月26日

函数指针与返回指针的函数

摘要: 如下两个例子1. int* lpfun(int,int);2. int (*lpfun)(int,int);第一种是我们熟悉的函数指针,即函数的返回值为int类型的指针第二种一定要用括号把*号和lpfun括起来,这种类型与第一种不一样,是指向一种函数地址的指针。这个函数的返回类型是int型,实参也为int型。#include <stdio.h>using namespace std;int* lpfun1(int,int); //声明一个返回指针为int类型的函数int lpfun2(int,int); //普通函数typedef int (*lpfunPointer)(int,i 阅读全文

posted @ 2011-08-26 14:38 天上星 阅读(16224) 评论(0) 推荐(0) 编辑

2011年8月16日

动态内存分分配

摘要: 大多数程序在运行时,计算机中会有部分的内存未分配,这些内存叫堆或叫自由存储器。我们可以用new操作符在堆中为特定类型的变量分配空间,返回值是分配给此变量的内存地址。释放分配的空间是用delete操作符。在内存中操作指针比操作变量本身速度更快更有效,特别是对于数组。一 给简单变量分配动态内存如我们要在内存中给一double型变量分配空间,我们可以先声明一个double型指针,然后再给此对象赋值: double* pdata=NULL; pdata=new double; *pdata=3.665;(等同于pdata=new doulbe(3.665);) delete pdata; pdata= 阅读全文

posted @ 2011-08-16 15:55 天上星 阅读(422) 评论(0) 推荐(0) 编辑

指针及数组

摘要: 一.指针 我们所申请的变量或数组都分配在内存中,它们在内存中存放的地址值可以被存在另个变量中,即一个变量指向它们在内存中的地址,这个指向内存变量地址的变量即为指针。如变量为 aa的在内存中的地址为0x6859ef.而0x6859ef又存放在bb的变量中,通过访问bb就可以找到aa,这个变量bb就是指向aa的指针。 变量在内存中是根据数据类型的大小分配的,以字节为单位。1.在C++中指针的声明形式为: type* variable=NULL; type *varialble=NULL; type表示类型,*号可以靠近type写也可以靠近varialble写,根据各人喜好。 NULL表示此指针中的 阅读全文

posted @ 2011-08-16 11:00 天上星 阅读(209) 评论(0) 推荐(0) 编辑

2011年8月10日

强制类型转换

摘要: 两种强制类型转换: 老式: int a=(int)b; 新式: int a=static_cast<int>(b);即产生一临时变量,这个变量存储b变成int类型的值,且不影响b,把此变量的值赋给a后自动消失。对b没有影响。类型转换分为隐式转换和显式转换。 1. 隐式转换是指编译器自动进行转换, 不用用户指明类型。编译器遵循的原则是把占用空间小的类型扩展为空间大的类型。如: double a=0.0; float b=12.3355; a=b; 编译器会自动把精度为7的浮点型数据转变为精度为15的double类型,这样不会使数据因超过内存空间而溢出。 2. 强制转换表示这个转换是人 阅读全文

posted @ 2011-08-10 17:24 天上星 阅读(282) 评论(0) 推荐(0) 编辑

运算符顺序和位运算符

摘要: 位运算符: &(AND):表示二元数全为真时结果为真。 >(OR):或,表示二元数有一个为真时结果为真 ^(EOR):异或。只有二元数全为1时,结果为0.即相同为0 ~:取反。一元操作符,为1时结果为0,为0时结果为1 >>:位右移。即操作数以二进制形式向右边移动的位数。 <<:位左移. 即操作数以二进制形式向工边移动的位数。 它们的格式也可变为: LValue op= RValue; 如: a &=b 等价于 a=a & b; <<和>>操作对于无符号整数相当于 原值乘以2的n次方或原值除于2的n次方,n为移动的位 阅读全文

posted @ 2011-08-10 10:26 天上星 阅读(703) 评论(0) 推荐(0) 编辑

2011年8月9日

转义符

摘要: 转义序列就是 通过避开一些字符的默认方法,允许在字符串中包括这些利用其它方法不能表示的字符。转义符以\开头,反斜杠字符告诉编译器按照一种特殊的方法解释后面的字符。#include <iostream>using namespace std;void main(){ char myreturn='\n'; cout<<"\"we\'r good man,please tell him\""<<myreturn; cout<<"\a"; cout<<&qu 阅读全文

posted @ 2011-08-09 17:16 天上星 阅读(224) 评论(0) 推荐(0) 编辑

typedef、setw()

摘要: #include <iostream>#include <iomanip>using namespace std;typedef int Customint;void main(){ /********************************************************** *用typedef给一个类型再起一个别名,如用Customint来代替int。* *对一变量进行赋值有 = 和()两种。 * *setw是设置输出字赋的宽度,如setw(4)就是输出4个空白位置被 * *值占用,只对其后的变量或值起作用。右对对齐 * * ******** 阅读全文

posted @ 2011-08-09 16:16 天上星 阅读(207) 评论(0) 推荐(0) 编辑

VC++2005 中各基本类型的大小

摘要: 得到基本数据类型的字节数#include <iostream>using namespace std;void main(){ /*显示为所占字节数*/ cout<<"bool:"<<sizeof(bool)<<endl; cout<<"char:"<<sizeof(char)<<endl; cout<<"signed char:"<<sizeof(signed char)<<endl; cout<<&q 阅读全文

posted @ 2011-08-09 15:00 天上星 阅读(258) 评论(0) 推荐(0) 编辑

上一页 1 ··· 16 17 18 19 20

导航