• AnsiString, String, char,char


    AnsiString 是一个类,String 是一个结构,char* 是一个指针 。String是Pascal的类型原型,因为C++中没有字符串数据类型的,因此使用char*来存储,char*必须是以‘/0'结尾的,否则不能按照C++的“字符串”来处理。AnsiString是为了兼容VCL中Object Pascal而写的一个类,其实这个类的内核处理还是ObjectPascal中的代码,AnsiString是自动分配内存的,并且是一个纯C++类, 和其它VCL类不一样,当声明一个AnsiString 的时候AnsiString本身只有一个指向另外内存的指针,其指向的内存才是真正存储字符串的位置,c_str()就是获取这个字符串地址的函数,但是 这个内存地址会根据AnsiString对象大小的改变而改变,就是说这个c_str()每一个返回的有可能不一样。 

    String在C++ Builder中和AnsiString是一样的,只是为了兼容Pascal中的String类型而作的typedefine而已。 

    AnsiString.c_str() 就是返回数据的字符串指针。 

    下面AnsiString ===>Char * 

         char * p; 

         AnsiString a = "asdf";     

         p = a.c_str();   

    接下来AnsiString ==>char 

         char p[64]; 

         AnsiString a; 

         strcpy(p,a.c_str()); 

    最后char ===> AnsiString 

         AnsiString a; 

         char p[25]= "asdf"; 

         a = (AnsiString)p; 

    unsigned char 轉成 AnsiString 

    unsugned char myKey[32]="XXX"; 

    (AnsiString)(Char *)myKey; 

  • 相关阅读:
    cocoapods使用遇到的一些问题
    so
    UITextField的各种属性方法介绍
    <<第1章 初识JAVA>>
    《第16章 复习》
    《第17章 图书管理系统》
    《第15章 字符串》
    《第13章 猜拳游戏》
    《第14章 带参数的方法》
    《第12章 类的无参方法》
  • 原文地址:https://www.cnblogs.com/blogpro/p/11445998.html
Copyright © 2020-2023  润新知