結構
結構不可以這樣賦值
Structcomplex_struct z1;
Z1={3.0,4.0};
可以這樣初始化 structcomplex_struct z1={3.0,4.0};,在局部變量中還可以這樣賦值:
Doublex=3.0; struct complex_struct z1={x,4.0};但是全局變量中不可以。可以這樣給結構賦值:z1.x=3.4;z1.y=4.0;還可以只初始化結構中的部分成員,未初始化成員爲0。
數組
可以定義一個由若干個結構體元素組成的數組,也可以定義一個包含數組成員的結構體:structcomplex_struct{double x,y;}a[4]; struct{doublex,y; int count[4];}s;
在c語言中後綴運算符的優先級最高,單目運算符的優先級僅次於後綴運算符,比其他運算符的優先級都高,所以++count[2]表示的是對count[2]做前綴++運算。Inta=1; ++a++??
給數組初始化部分元素時可以這麼初始化 intcount[4]={[2]=3};其他成員爲0。
數組與結構體最顯著的不同是:數組不能相互賦值或初始化,而結構體可以。如:
Inta[4]={2,5,}; int b [4]=a;或者a=b; 都是錯的。而structcomplex_struct a={1.0,2.0} ,b; b=a;是可以的,這也意味着數組不能作爲函數的參數返回值。
在庫<stdlib.h>中有一個函數rand(),它可以返回一個0~RAND_MAX之間的任意數,RAND_MAX很大,要是隻要0—9的數可以這樣inta=rand()%10;
Time(NULL)函數返回一個值,該值爲當前系統時間距1970年1月1日00:00:00的秒數,它在<time.h>中定義,而srand()可以給rand確定一個初值Seed,如srand(time(NULL));可以給rand確定一個初值。這在一定程度上達到獲得隨機數的目的。
字符數組:
如果定義的字符數組長度剛好比字符串字面值少一位,用字符串字面值給字符數組賦值時,編譯器也不會報錯,但是字符數組後面沒有’\0’,即沒有結束符。