关于PChar(@string)的疑惑
看到一篇博客关于讲Delphi中MOVE的例子,心生疑惑。记录下自己的实验,虽然我也不知道这是啥。。。
program Project1; {$APPTYPE CONSOLE} uses
SysUtils; var
sCode: string = 'ABC';
p_code:PChar;
begin
Writeln(Cardinal(@sCode),#); //输出变量sCode地址
Writeln(Cardinal(PChar(@sCode)),#); //将变量sCode的地址转成PChar型的指针后输出
p_code:=PChar(sCode); //将变量sCode转成以#0结尾的字符数组指针
Writeln(Cardinal(@(p_code)),#); //输出'ABC'实际数据地址 Writeln(Cardinal(@(p_code[])),#); //输出sCode中'A'的地址
Writeln(Cardinal(@(p_code[])),#); //输出sCode中'B'的地址 Writeln(PChar(@(p_code[]))^,#); //输出sCode中'A'
Writeln(p_code[],#); //输出sCode中'B'
Writeln(p_code,#); //输出sCode
Readln;
end.
关于PChar(@string)的疑惑的更多相关文章
- PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换
PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar ...
- Delphi的字符(Char),字符串(String),字符串指针(PChar),字符数组arrayofchar(来自http://delphi.cjcsoft.net/论坛)
Delphi有三种类型的字符: AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. WideChar这是2字节的Unicode字符. Char在目前相当于AnsiChar,但在De ...
- delphi string,pchar,char的比较
来自:http://blog.163.com/kat_/blog/static/189284269201152513331999/ ---------------------------------- ...
- 转:Delphi 6 实用函数
来自: daocaoren0824, 时间: -- ::, ID: 再给你一份 程序员实用函数 {▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎} {▎ ▎} {▎ 大 ...
- [转]struct.pack 用法手记
原文:http://hi.baidu.com/tibelf/item/8b463d15edfdf10bd1d66d83 看到在进行c格式的二进制文件读取的过程中,用到了struct.unpack方法, ...
- Delphi常用系统函数总结
Delphi常用系统函数总结 字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S : ...
- Some Delphi tips
====================================conversion routines====================================Format('T ...
- C/C++ 宏中的 #、#@、##的作用
宏中的# 功能是将其后面的宏参数进行字符串化操作(Stringizing operator), 简单说就是在它引用的宏变量的左右各加上一个双引号. #define STRING(x) #x 下面二条语 ...
- C,C++宏中#与##的讲解[转]
MoreWindows 专注于Windows编程 C,C++宏中#与##的讲解 文中__FILE__与示例1可以参见<使用ANSI C and Microsoft C++中常用的预定义宏> ...
随机推荐
- stl综合
区别: List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector ...
- Web重温系列(二):SQLite+EF6实现本地化存储
本来我们的产品有着复杂的层次结构,作为客户端的C# WinForm是不操作数据库的.但是最近有个需求,需要将数据本地保存.可选的方案很多,比如文本文件或者XML序列化和反序列化,或者如access.d ...
- 使用cnpm 安装vue.js
前提已经安装了node.js 一.临时使用 1.npm install -g cnpm --registry=https://registry.npm.taobao.org 2.cnpm instal ...
- [原]Docker-issue(1) image name 显示为 <none>
问题:今天发现重新上传新的image的时候覆盖了原来的镜像后,REPOSITORY 就变为了 <none> ,如下图 解决办法: 使用tag重新命名image 问题解决:
- [原]Django-issue(1)---postgresql数据库连接密码错误
环境: Django==1.9.13 psycopg2==2.7.5 Python 3.6.5 postgresql 1.18.1 配置django的时候出现问题 检查setting,问题点:由于安装 ...
- 自定义Flume Sink:ElasticSearch Sink
Flume Sink的目的是从Flume Channel中获取数据然后输出到存储或者其他Flume Source中.Flume Agent启动的时候,它会为每一个Sink都启动一个SinkRunner ...
- vmare 往 virtualbox迁移
vmare实在太卡了.抓狂. 于是想迁移到virtualbox观察下. 谷歌了下方案,发现众说纷纭. 有操作超级复杂的,比如:http://stackoverflow.com/questions/69 ...
- Python3.6连接mysql(一)
初次学习python,因为python连接mysql的时候,需要安装mysql驱动模块 之前按照廖雪峰网站上的方法安装mysql驱动的方法: MySQL官方提供了mysql-connector-pyt ...
- unicode 与 utf-8 编码概念及区别
unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.每个字符都对应一个编号,编号的范围是0-0x10FFFF来.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为 ...
- vue3版本到vue2版本的桥接工具
vue2的命令可以正常使用.