当前位置: 首页 > news >正文

有哪些营销型网站推荐东莞建设局网

有哪些营销型网站推荐,东莞建设局网,个体户年报网上申报,WordPress电影资源分享下载站大家都认为#xff0c;C语言之所以强大#xff0c;以及其自由性#xff0c;很大部分体现在其灵活的指针运用上。因此#xff0c;说指针是C语言的灵魂#xff0c;一点都不为过。同时#xff0c;这种说法也让很多人产生误解#xff0c;似乎只有C语言的指针才能算指针。Bas…大家都认为C语言之所以强大以及其自由性很大部分体现在其灵活的指针运用上。因此说指针是C语言的灵魂一点都不为过。同时这种说法也让很多人产生误解似乎只有C语言的指针才能算指针。Basic不支持指针在此不论。其实Pascal语言本身也是支持指针的。从最初的Pascal发展至今的Object Pascal可以说在指针运用上丝毫不会逊色于C语言的指针。以下内容分为八个部分分别是一、类型指针的定义二、无类型指针的定义三、指针的解除引用四、取地址指针赋值五、指针运算六、动态内存分配七、字符数组的运算八、函数指针一、类型指针的定义。对于指向特定类型的指针在C中是这样定义的int *ptr;char *ptr;与之等价的Object Pascal是如何定义的呢varptr : ^Integer;ptr : ^char;其实也就是符号的差别而已。二、无类型指针的定义。C中有void *类型也就是可以指向任何类型数据的指针。Object Pascal为其定义了一个专门的类型Pointer。于是ptr : Pointer;就与C中的void *ptr;等价了。三、指针的解除引用。要解除指针引用即取出指针所指区域的值C 的语法是 (*ptr)Object Pascal则是 ptr^。四、取地址指针赋值。取某对象的地址并将其赋值给指针变量C 的语法是ptr Object;Object Pascal 则是ptr : Object;也只是符号的差别而已。五、指针运算。在C中可以对指针进行移动的运算如char a[20];char *ptra;ptr;ptr2;当执行ptr;时编译器会产生让ptr前进sizeof(char)步长的代码之后ptr将指向a[1]。ptr2;这句使得ptr前进两个sizeof(char)大小的步长。同样我们来看一下Object Pascal中如何实现vara : array [1..20] of Char;ptr : PChar; //PChar 可以看作 ^Charbeginptr : a;Inc(ptr); // 这句等价于 C 的 ptr;Inc(ptr, 2); //这句等价于 C 的 ptr2;end;六、动态内存分配。C中使用malloc()库函数分配内存free()函数释放内存。如这样的代码int *ptr, *ptr2;int i;ptr (int*) malloc(sizeof(int) * 20);ptr2 ptr;for (i0; i20; i){*ptr i;  ptr;  }free(ptr2);Object Pascal中动态分配内存的函数是GetMem()与之对应的释放函数为FreeMem()传统Pascal中获取内存的函数是New()和 Dispose()但New()只能获得对象的单个实体的内存大小无法取得连续的存放多个对象的内存块。因此与上面那段C的代码等价的 Object Pascal的代码为var ptr, ptr2 : ^integer;i : integer;beginGetMem(ptr, sizeof(integer) * 20);//这句等价于C的 ptr (int*) malloc(sizeof(int) * 20);ptr2 : ptr; //保留原始指针位置for i : 0 to 19 dobeginptr^ : i;Inc(ptr);end;FreeMem(ptr2);end;对于以上这个例子无论是C版本的还是Object Pascal版本的都要注意一个问题就是分配内存的单位是字节BYTE因此在使用GetMem时其第二个参数如果想当然的写成 20那么就会出问题了内存访问越界。因为GetMem(ptr, 20);实际只分配了20个字节的内存空间而一个整形的大小是四个字节那么访问第五个之后的所有元素都是非法的了对于malloc()的参数同样。七、字符数组的运算。C语言中是没有字符串类型的因此字符串都是用字符数组来实现于是也有一套str打头的库函数以进行字符数组的运算如以下代码char str[15];char *pstr;strcpy(str, teststr);strcat(str, _testok);pstr (char*) malloc(sizeof(char) * 15);strcpy(pstr, str);printf(pstr);free(pstr);而在Object Pascal中有了String类型因此可以很方便的对字符串进行各种运算。但是有时我们的Pascal代码需要与C的代码交互比如用 Object Pascal的代码调用C写的DLL或者用Object Pascal写的DLL准备允许用C写客户端的代码的话就不能使用String类型了而必须使用两种语言通用的字符数组。其实Object Pascal提供了完全相似C的一整套字符数组的运算函数以上那段代码的Object Pascal版本是这样的var str : array [1..15] of char;pstr : PChar; //Pchar 也就是 ^CharbeginStrCopy(str, teststr); //在C中数组的名称可以直接作为数组首地址指针来用//但Pascal不是这样的因此 str前要加上取地址的运算符StrCat(str, _testok);GetMem(pstr, sizeof(char) * 15);StrCopy(pstr, str);Write(pstr);FreeMem(pstr);end;八、函数指针。在动态调用DLL中的函数时就会用到函数指针。假设用C写的一段代码如下typedef int (*PVFN)(int); //定义函数指针类型int main(){ HMODULE hModule LoadLibrary(test.dll);PVFN pvfn NULL;pvfn (PVFN) GetProcAddress(hModule, Function1);pvfn(2);FreeLibrary(hModule);  }就我个人感觉来说C语言中定义函数指针类型的typedef代码的语法有些晦涩而同样的代码在Object Pascal中却非常易懂type PVFN Function (para : Integer) : Integer;varfn : PVFN;//也可以直接在此处定义如fn : function (para:Integer):Integer;hm : HMODULE;beginhm : LoadLibrary(test.dll);fn : GetProcAddress(hm, Function1);fn(2);FreeLibrary(hm);end;转载于:https://www.cnblogs.com/yuezh/archive/2012/06/15/2550968.html
http://www.yutouwan.com/news/49080/

相关文章:

  • 网站开发和桌面开发哪个难中国网络技术有限公司
  • 网站开发模式框架太原seo报价
  • 查询网站服务商网站建好了 如何推广
  • 网站建设公司怎么写宣传语宣城有木有专业做网站的
  • 公司网站的具体的建设方案网络整合营销策划书
  • 怎么做网站地图的样式凡客设计
  • 网站因未取得备案号而被关闭网站建成
  • 清华紫光是可以做网站的吗长沙建站公司
  • 网站建设英文字体平湖网站建设公司
  • 做网站需要ftp吗河南地区建设工程信息网
  • 绍兴哪些公司做网站学院加强网站建设
  • 屏蔽蜘蛛网站还会被收录吗做网站现在赚钱吗
  • 网站经营方案 备案dw做网站菜单栏
  • 水网站源码用dw制作个人简介网页代码
  • 重点专业建设验收网站网页制作与网站管理
  • 如何用虚拟主机建设网站学生网页制作成品
  • 聚美优品网站怎么做的自学网站建设要多久
  • 视频网站高管有做传统媒体出身的吗?优酷副总裁转型成功的概率有多少?学校网站建设解决方案
  • 做男装比较好的网站创建网站的软件
  • php大流量网站开发规范做网站的尺寸1920
  • 旅游网站建设的功能品牌网站建设意义
  • 电商网站开发公司做外贸网站卖什么货好呢
  • 网站建设项目选题视频课程网站建设
  • 网站备案信息被注销网页设计公司哪个好
  • 思乐网站建设如何免费引流推广
  • 成都网站建设成功案例单招网烟台网站搜索优化
  • 深圳市住房城乡建设局网站搜狗推广下架
  • 个人建站软件小马网站建设
  • 网站域名备案需要什么wordpress notfound
  • 做资源网站项目网站基础设施建设