為結構體的字元陣列成員賦十六進製制形式表示的字串

2021-08-03 04:13:06 字數 418 閱讀 8619

今天在為乙個結構體的unsigned char陣列賦十六進製制形式表示的字元時遇到問題了,如下:

typedef  struct 

int bits;

unsigned char x[2];

unsigned char y[2];

}key;

當需要定義並初始化乙個例項時,其中的陣列x,y均賦值為十六進製制形式表示的字元,如0xff,0xfe,可採用如下的賦值語句:

key key_1 = ,  };//right

key key_2 = ;// wrong 這樣陣列會把0x和","單獨解釋成乙個元素,無法實現把「a1」當成乙個元素。

key key_3 = ;// wrong

key key_4 = ;// wrong 這樣陣列會把0x也解釋成乙個元素,從而會造成陣列的溢位。

結構體中的陣列成員的賦值問題

include using namespace std struct student int main 道理和以下語句錯誤的原因一樣,陣列名表示常量,不允許對常量賦值,所以常量不允許出現在 的左邊,當做左值出現。所以不能直接用字串賦值給陣列名。但請注意 可以在定義字元陣列的同時用字串給字元陣列賦初值...

C 含陣列成員的結構體變數之間的賦值

含有陣列成員的結構體的變數之間可以進行賦值,示例如下 include define n 20 typedef struct hcode intmain void hc arr 0 hc printf s n d n hc arr 0 cd,hc arr 0 start return0 以上 在iso...

陣列成員打亂順序的乙個簡單的方法

這幾天做程式用到了陣列排序,最後找到個這個簡單的方法。程式用c 實現 有的時候需要對陣列的成員打亂順序,這樣可以隨機讀取陣列成員,達到固定數目隨機讀取的目的。函式 public static t randomsort t array return ret 呼叫 string aa new strin...