1樓:
這個貌似沒法賦值
因為fillchar 是對位操作(可以理解為每一個位元組)
longint是四個位元組
用fillchar是給這四個位元組都賦值為相同的值
但是要使longint=1,則前三個位元組為0,最後一個是1,
這樣不符合fillchar的操作,所以不能
fillchar要麼對longint賦值為0要麼是maxlongint(這兩種最常用)
要賦值為1的話就只能用迴圈了
完畢,給分吧
補充:回樓下
賦值maxlongint的方法是
fillchar(a,sizeof(a),127);或者fillchar(a,sizeof(a),$7f);
(其中a是longint陣列)
即把每一個位元組都賦值為最大值,那麼4個位元組都最大,加起來就是滿的,所以是maxlongint
同理,對於任何整型別陣列,照此法行都可以賦值為本型別的最大值(如integer是maxint;byte是127)
2樓:匿名使用者
longint沒法直接賦成1,
可以賦成0,也就是fillchar(a,sizeof(a),0);
或者可以賦成-1,也就是fillchar(a,sizeof(a),255);
pas_zoujp所言有誤,不可以賦maxlongint.
pascal是如何定義陣列的?
3樓:匿名使用者
首先,pascal中定義陣列有多種方法,在這裡我就介紹2中。
例,定義陣列名為:a;型別為:real;共計100個元素方法一:
type
arr=array[1..100]of real;
vara:arr;
方法二:
vara:array[1..100] of real;
方法一適用於需要作過程或者函式的引數時實用,方法二寫法簡單,一般你不用作過程或者函式的引數的話,建議使用方法二。
另附:string 英文中的意思是:串,線在pascal中是 字串的型別(pascal保留字),最多容納255個字元元素
可以看做是
type
string=array[1..255]of char;(字元)還有一種是ansistring 更長一些
fillchar() 在pascal 中的應用
4樓:匿名使用者
fillchar(arr,y,x):將陣列arr所佔用的記憶體y個位元組用x填充。通常與sizeof()函式連用。
sizeof()返回陣列所佔的位元組總數。fillchar(arr,sizeof(a),x):即可填充陣列所在的全部記憶體塊。
可以將該陣列所對應的位元組每個位元組都填充成x,達到集體賦值的效果。例如var a:array[1..
100000,1..100000] of byte;如果要將本陣列全部賦為1的話for迴圈需要10^10次,而fillchar(a,sizeof(a),1):就能瞬間賦值完。
將每個位元組變成00000001,也就是數字1。注意如果有的變數佔用了多個位元組的話比如longint,int64型別,fillchar(a,sizeof(a),1):就會將每個位元組都賦值為1,就變成了00000001 00000001也就是257
5樓:匿名使用者
fillchar,整體賦值原型:fillchar(arr,sizeof(arr),x):表示對arr陣列賦值為x
pascal 陣列全部清為-1,語句怎麼寫?fillchar(a,sizeof(a),-1), 為什麼不對?
6樓:
fillchar()的第三個引數是賦給每個位元組的值,sizeof()返回的是位元組數。-1自然用不了。一般不用fillchar去賦false及0以外的值。
如果陣列是longint形,可以用filldword(a,sizeof(a) div 4,-1);試試。雖然我沒試過,但書上說這個函式是四位一賦值。
7樓:匿名使用者
這有點問題 fillchar(a,sizeof(a),x) -1不能用 只有一個辦法 a[1]:=-1;a[2]:=-1....a[n]:=-1;
8樓:匿名使用者
不可能,fillchar(a,sizeof(a),x),只可用來清零
9樓:匿名使用者
因為那個-1不是數字意義的-1,就像如果打1的話會賦值為很大的數字一樣
10樓:
你的a陣列是integer還是longint也有原因的,integer的話就fill255還是$7我忘了你試試
11樓:匿名使用者
這個問題隨便是初學者都知道啦,fillchar(a,sizeof(a),255);這就是-1啦!
我用性命保證這是對的!
c++ 初始化陣列 相當於pascal裡的fillchar的那個東西c++怎麼寫?好像是個m開頭的東西。
12樓:匿名使用者
1全部清0通常用
int a[100] =;
類似這樣
或者memset(a,0, sizeof(a)); 這個有點類似於fillchar,按位元組對記憶體進行賦值,也就是fill char
中間的0可以是其他字元
陣列可以使用具體元素初始化
如int a[10] = ;
沒寫的就預設為0
也可以寫成
int b =;
按初始化元素的個數指定陣列的大小
字串陣列
可以char c[100]="123123";
也可以使用strcpy
方法多多,看你具體對應哪一種
13樓:匿名使用者
初始化陣列?
你是說動態陣列麼?
如果是的話就是包含#include
然後用malloc函式來動態分配記憶體。
希望我猜中了。
14樓:匿名使用者
c++沒有函式來初始化,你只有用迴圈語句了
c語言中怎麼給陣列賦隨機值,C語言中怎麼給陣列賦隨機值
看 include include include define n 9 void main for i 0 i 這裡注意一下rand 需要生成資料的範圍公式,即 範圍在 a,b 寫成 a i a rand b a 你只定義不賦值,像是int a 10 它裡面的數字就是隨機的,如果有規定範圍,就要像...
如何用matlab生成這樣的陣列 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6
其實你bai這個問題,du用程式設計是很簡單的。zhi但是如果單用daomatlab函式實現,我現在回只想到一個辦答法。比如 a 1 n 是你自己假定的長度 然後呼叫複製函式b repmat a,1,5 生成相同的矩陣,組合成為一個大矩陣。最後sort b,2 進行排序。就出來你想要的結果了。mat...
c語言中陣列能不能先定義然後直接賦給初值
你這個寫法存在兩個問題。陣列a沒有a 2 3 這個單元!行號是0,1,列號是0,1,2。int a 2 3 和a 2 3 是完全不同的概念!前者是定義陣列。在定義時賦值,相當於為整個陣列或部分陣列進行初始化。比如這裡int a 2 3 相當於給整個陣列賦了值。後者是陣列的一個單元。在定義之後賦值,只...