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

网站手机端和电脑端网站下一步工作怎么做

网站手机端和电脑端,网站下一步工作怎么做,长清网站建设,企业网站长度大家都认为#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.zqtcl.cn/news/343526/

相关文章:

  • 中国网站建设公司排行榜成都彩票网站建设
  • 网站域名解析失败个人推广网站
  • 东莞网站建设网络公司排名卓业网站建设
  • 建立自己的网站平台的好处高校英文网站建设
  • 大力推进网站集约化建设兰州优秀网站推广
  • 手机wap网站怎样从微信公众号打开辽宁省住房和城乡建设厅网站上不去
  • 网站建设备案 优帮云四川建设设计公司网站
  • dede网站搬家 空间转移的方法网站建设多少钱一个平台
  • 山东济南网站开发互联网创业项目哪家好平台
  • 公司网站建设文案济南网站定制策划
  • 怎么做网站例如京东小红书推广引流
  • 游戏网站建设策划书企业vi包含哪些内容
  • 教育视频网站开发网站响应时间长
  • 在哪些网站做收录比较快张家港江阴网站设计
  • 商业网站最佳域名贵州网站建设
  • 毕业设计做网站的步骤网络推广关键词优化公司
  • 悠悠我心的个人网站怎么做怎么开网站平台
  • 行业网站产品选择废旧材料手工制作大全
  • 企业内网网站建设徐州关键词优化公司
  • step7用法fc州网站建设discuz网站论坛间帖子转移
  • 网站的js效果代码大全wordpress主题修改颜色教程
  • 安徽省城乡和建设厅网站申请免费域名邮箱
  • 溧阳网站建设哪家好wordpress 迁移 空白
  • 网页设计个人网站设计建设营销型网站多少钱
  • 做网站时联系我们制作模板西部数据网站空间
  • 合肥网站建设服务公司wordpress安装字体
  • 建设阅读网站的意义长沙微推广平台
  • 所有搜索引擎蜘蛛不来网站了怎么开发手机页面
  • 网站没域名广告传媒公司取名
  • 代理浏览网站跨境电商平台