全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1308
推到 Plurk!
推到 Facebook!

請問null,nil相關問題?

尚未結案
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-05 00:34:30 IP:61.231.xxx.xxx 未訂閱
下方程式中 一 當a是variant a:=null和b是string b:=''時 length(a)=length(b) 所以null和''都是表示沒有字元在變數中嗎? null和''相同? 二 c=null , d=null 可設定 但卻無法showmessage(c)或(d) 而c:='',d='' 才可以showmessage(c)和(d) ,請教null和'' 在type string中的差別 三 若var a:string,a:='',正常來說的話trim(a)=trim('')? 有沒有例外?有的話怎麼發生的?(執行時是相等的) 四 對trim中delphi中的說明不是很瞭解, Trims leading and trailing spaces and control characters from a string. 請教什麼狀況下會產生Trims leading 和trailing spaces, 下面這段控制字元是什麼意思?control characters from a string. 五 nil如timage中image.picture:=nil是表示把picture的值設為nil 這個nil說明如下 像var a:string,a就無法指向nil,如a:=nil就不行,是表示要有物件才能用把nil指向物件嗎? The reserved word nil is a special constant that can be assigned to any pointer. When nil is assigned to a pointer, the pointer doesn't reference anything.
procedure TForm1.BitBtn2Click(Sender: TObject);
var a:variant;
b:string;
c,d:string;
begin
a:=null;
showmessage(inttostr(length(vartostr(a))));
b:='';
showmessage(inttostr(length(b)));
end;
c:='';
d:='';
if c=d then 
showmessage('y');
c:=null;
d:=null;
showmessage(c);
showmessage(d);
if c=d then //error
showmessage('y');    
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/11/05 00:49:24
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-05 08:23:45 IP:61.155.xxx.xxx 未訂閱
1、 变体类型占用16 字节的内存,包含一个类型码和一个值(或指向这个值的指针),值的类型由类型码指定。所有的变体类型在创建时被初始化为Unassigned,Null 表示未知或没有数据。 2、 NULL 字符(#0) 3、 指针为nil,此时,它不需要额外的内存; 保留字nil 是一个特殊常量,可赋给任何指针(类型)。当nil 被赋给一个指针时,指针不表示任何东西。 4、 要取消动态数组的分配,给它的变量赋值nil;。0 长度动态数组的值为nil。 5、 nil 可以赋给任何过程类型。过程变量可以是nil 值,但此时调用它会引发错误。要测试一个过程变量是否被赋值,使用标准函数 Assigned 6、 动态数组、过程、类、类引用或者接口类型都可以指定nil
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-05 20:05:24 IP:61.231.xxx.xxx 未訂閱
1、 变体类型占用16 字节的内存,包含一个类型码和一个值(或指向这个值的指针),值的类型由类型码指定。所有的变体类型在创建时被初始化为Unassigned,Null 表示未知或没有数据。 請教大大 上面是指中文或全形碼(2bytes=16-bit的組合嗎?若是指全形的話 不知這全形是由多少個類型碼和值組成的?(小弟知道以在半形或英文中是1 7組成的) 2、 NULL 字符(#0)null是4個英文字那就是8-8-8-8-bit,那它的字符#0 是多少bit,是8-bit?null是Variant型態? 3、 指针为nil,此时,它不需要额外的内存; 保留字nil 是一个特殊常量,可赋给任何指针(类型)。当nil 被赋给一个指针时,指针不表示任何东西。試了一下在Button1: TButton; Edit1: TEdit; Image1: TImage; Table1: TTable; button1,edit1,image1,table1都可以指向nil,nil 有type?如type variant, 有多少bit或bytes? 4、 要取消动态数组的分配,给它的变量赋值nil;。0 长度动态数组的值为nil。 5、 nil 可以赋给任何过程类型。过程变量可以是nil 值,但此时调用它会引发错误。要测试一个过程变量是否被赋值,使用标准函数 Assigned 6、 动态数组、过程、类、类引用或者接口类型都可以指定nil 請教Trims leading 和trailing spaces也是由一個bytes組成? 「堅持」從洗馬桶做起 Aric
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-06 07:42:14 IP:61.155.xxx.xxx 未訂閱
见红色部分 1、 变体类型占用16 字节的内存,包含一个类型码和一个值(或指向这个值的指针),值的类型由类型码指定。所有的变体类型在创建时被初始化为Unassigned,Null 表示未知或没有数据。 請教大大 上面是指中文或全形碼(2bytes=16-bit的組合嗎?若是指全形的話 不知這全形是由多少個類型碼和值組成的?(小弟知道以在半形或英文中是1 7組成的) 2、 NULL 字符(#0)null是4個英文字那就是8-8-8-8-bit,那它的字符#0 是多少bit,是8-bit?null是Variant型態? 长度为0的字符 3、 指针为nil,此时,它不需要额外的内存; 保留字nil 是一个特殊常量,可赋给任何指针(类型)。当nil 被赋给一个指针时,指针不表示任何东西。試了一下在Button1: TButton; Edit1: TEdit; Image1: TImage; Table1: TTable; button1,edit1,image1,table1都可以指向nil,nil 有type?如type variant, 有多少bit或bytes? 4、 要取消动态数组的分配,给它的变量赋值nil;。0 长度动态数组的值为nil。 5、 nil 可以赋给任何过程类型。过程变量可以是nil 值,但此时调用它会引发错误。要测试一个过程变量是否被赋值,使用标准函数 Assigned 6、 动态数组、过程、类、类引用或者接口类型都可以指定nil 請教Trims leading 和trailing spaces也是由一個bytes組成? 指的是指针地址
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-07 01:57:16 IP:61.231.xxx.xxx 未訂閱
Trims leading 和trailing spaces通常用trim涵數去清 這trims leading 和trailing spaces是啥呢?這trims leading 和trailing spaces是否就是null和nil? 「堅持」從洗馬桶做起 Aric
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-07 11:24:03 IP:61.155.xxx.xxx 未訂閱
trim 是清除的空格,长度为1 null 是长度为0 的,=#0; 所以两者不等
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-07 18:21:45 IP:61.231.xxx.xxx 未訂閱
謝謝您的回答 「堅持」從洗馬桶做起 Aric
系統時間:2024-07-09 5:07:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!