請問null,nil相關問題? |
尚未結案
|
huangeider
高階會員 ![]() ![]() ![]() ![]() 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
下方程式中
一 當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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
见红色部分 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 發送簡訊給我 |
|
sos_admin
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
huangeider
高階會員 ![]() ![]() ![]() ![]() 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |