1. 程式人生 > 資訊 >三星 Galaxy Tab A8 2021 渲染圖曝光:10.4 英寸液晶屏,厚度 6.9mm

三星 Galaxy Tab A8 2021 渲染圖曝光:10.4 英寸液晶屏,厚度 6.9mm

  1 -------------------------------------
  2 day05
  3 
  4 -------------------------------------
  5 回顧:
  6     1》控制流
  7         分支結構: 
  8             if   else if  else
  9             switch case    ---  break
 10             goto
 11     2》函式:
 12         返回值  函式名字(函式引數)
 13         {
 14             函式體
15 } 16 17 void fun(void) 18 { 19 xxxx; 20 } 21 22 int main(void) 23 { 24 fun(); --函式呼叫 25 } 26 27 3》指標: 28 *》取地址 & 29 char xx = 'a'; 30 &xx; ---- char
* 31 char *yy = &xx; 32 printf("%p\n",yy); 33 34 *》解引用:* 35 *yy ----> xx 36 37 4》陣列: 38 同一型別資料緊挨儲存在一塊空間 39 short arr[33]; 40 41 ----------------------------------------- 42 如何修改 vi 介面:
43 vim ~/.vimrc 44 set cursorline 45 set nu 46 set mouse=a 47 set tabstop=4 48 set softtabstop=4 49 set shiftwidth=4 50 set cindent 51 set ruler 52 53 54 如何快速整理格式: 55 在命令模式下 56 gg=G 57 58 -------------------------------------------- 59 字元陣列:-----就是 字串 60 *》概念: 61 數組裡面的儲存的都是字元 62 63 *》姿勢: 64 char 陣列名字[陣列大小]; 65 例子: 66 char arr[50]; 67 68 *》定義,賦值 都類似陣列.. 69 *》初始化: 70 *>不完全初始化 71 char arr[20]={'A'}; 下標為0的位置儲存'A',其他全部為0 72 char arr[20]={0}; 73 還可以: char arr[20]={'\0'}; 74 char arr[20]="fewf"; 75 "fewf" ---> 有5個字元 'f' 'e' 'w' 'f' '\0' 76 77 *>完全初始化 78 char arr[10]="123456789"; 79 char arr[10]="0123456789";----理論上這是錯誤的 80 81 *》字串函式的使用: 82 *》bzero ---- 清空 83 #include <strings.h> 84 void bzero(void *s, size_t n); 85 解釋: 86 bzero()函式將從s開始的區域的前n個位元組設定為零 87 分析: 88 s: 萬能指標型別變數,你需要清0的物件 89 n: 需要清0的位元組數 90 返回值: 沒有返回值 91 92 例子: 93 int a = 0x0f3e5523; 94 bzero(&a,2); --->??? 0x0f3e0000 95 96 以後經常使用: 97 char buf[50]; ----> 垃圾值 char * 98 bzero(buf,sizeof(buf)); 99 100 101 void : 沒有型別的型別,包含了所有型別,然後又不能用任何型別 102 void * ---> 萬能指標 103 void *xx; --- 萬能指標型別的變數 xx; 104 short *ss = (short *)xx; 105 int *ii = (int *)xx; 106 107 void *yy = ii; --->自動轉換 108 109 size_t : 取別名操作 unsigned int 110 typedef unsigned int size_t; 111 112 *》memset: 113 #include <string.h> 114 void *memset(void *s, int c, size_t n); 115 解釋: 116 memset()函式將s所指向的記憶體區域的前n個位元組填入c 117 分析: 118 s: 萬能指標型別變數,你需要操作的物件 119 c: 填充物 120 n: 需要操作的位元組數 121 返回值: void * --- 萬能指標型別 122 返回的就是s 123 例子: 124 char arr[20]={0}; 125 memset(arr,'a',10); 126 printf("%s\n",arr);------> aaaaaaaaaa 127 解說: printf用 %s來列印字串,碰到'\0'才會結束 128 abcdefd --》 將c換成'\0' 就只能列印ab 129 130 *》strcpy 131 #include <string.h> 132 char *strcpy(char *dest, const char *src); 133 解釋: 134 將src(包括'\0')拷貝到dest中---- 覆蓋dest--從第一個位元組開始 135 dest空間要比src空間大 136 分析: 137 src : 原陣列(資料) 138 dest: 目標陣列(資料) 139 返回值: char * ---- 字元指標型別 140 返回dest 141 142 例子: 143 char dest[20]="ILOVEU"; 144 char src[10]="OK"; 145 strcpy(dest,src); 146 147 char arr[20]; ---》 arr是什麼東西??? 148 解說: arr 是陣列的首地址,也是第一個元素的地址 149 arr的值不允許發生改變 150 結果: arr 是 char * 型別 151 152 153 154 155 char name[20]="Tonly"; 156 if(name=="Tonly")------沒有這種寫法,該寫法錯誤 157 *strcmp 158 #include <string.h> 159 int strcmp(const char *s1, const char *s2); 160 解釋: 161 strcmp()函式對兩個字串s1和s2進行比較。 它返回 一個小於、等於或大於0的整數 162 本質: 163 *》選取s1的第一個字元 和 s2的第一字元進行對比, 164 如果 s1的第一個字元 比 s2的第一字元小 就返回一個負數 165 如果 s1的第一個字元 比 s2的第一字元大 就返回一個正數 166 如果 s1的第一個字元 比 s2的第一字元相等,則比較第二個字元 167 如果s1和s2相等,則返回0 168 分析: 169 s1 s2 需要比較的字串 170 返回值: 171 s1 < s2 返回負數 172 s1 > s2 返回正數 173 s1 等於 s2 返回0 174 175 例子: 176 char s1[20]="ILOVEU"; 177 char s2[20]="ILOVEU"; 178 strcmp(s1,s2); 179 180 181 *strlen 182 #include <string.h> 183 size_t strlen(const char *s); 184 解釋: 185 strlen計算s的長度(不包含'\0'186 該計算 碰到 '\0'就結束 187 分析: 188 s: 字串 189 返回值: 190 size_t : unsigned int 字串的長度 191 192 --------------------------------- 193 const194 *》不變的,修飾誰,誰就是不能改變的值 195 例子: 196 const int a = 10; 197 a = 20; -------出錯 198 199 *200 int b = 20; 201 int a = 10; 202 const int *p = &a;----> const 修飾的是 *p 203 所有 *p 不允許發生改變 204 205 p = &b; ---沒問題 206 *p = 30; ---出錯 207 a = 30; ---沒問題 208 209 *210 int b = 20; 211 int a = 10; 212 int * const p = &a; ---》 const 修飾的是p 213 p不允許發生改變 214 215 p = &b; --- 錯誤 216 *p = 30; ---沒問題 217 218 *> 219 int a = 10; 220 const int * const p = &a; 221 *p 和 p 都不允許發生改變 222 223 224 int a = 10; 225 const int *p= &a; const 修飾的*p不允許改變 -- 不允許通過*p方式去改變值 226 const 修飾*p --阻止解引用改變值的操作 227 *p = 30; --- 出錯。 228 int *pp = p; 229 *pp = 30; ---沒有問題 230 231 ---------------------------------------------------------- 232 可變陣列: 233 1》概念: 234 陣列在定義前,大小可變 235 236 2》姿勢: 237 型別 陣列名[N]; N代表一個變數 238 int a = 100; 239 int arr[a];-----可變陣列 240 241 ****可變陣列一旦定義好之後就永遠不能發生改變 242 243 3》注意事項: 244 可變陣列不允許發生 初始化 操作,只能定義並通過下標的方式賦值 245 int a = 20; 246 int arr[a]={1,2,3,4,5};-----這是錯誤的 247 248 4》好處: 249 在程式執行的時候來決定陣列的大小 250 251 ------------------------------------------------ 252 二維陣列: 253 1》概念: 254 一個一維陣列的 元素 是 一維陣列就形成了二維陣列 255 256 2》姿勢: 257 型別 陣列名字[一維陣列的個數][每一個一維陣列中元素個數]; 258 例子: 259 int arr[2][3]; 260 ----- 該數字由 2個 一維陣列組成,每一個一維陣列中有3個int型別資料 261 顧:組成該二維陣列的基本元素個數有6個int型別 262 263 3》賦值: 264 int arr[2][3]; 265 arr[0][0]=10; 266 arr[1][1]=20; 267 268 4》初始化: 269 *》完全初始化: 270 int arr[2][3]={1,2,3,4,5,6}; 271 int arr[2][3]={{1,2,3},{4,5,6}}; 272 273 *》不完全初始化: 274 int arr[2][3]={0}; 275 int arr[2][3]={[0][1]=10,[1][1]=20}; 276 277 5》使用: 278 int arr[3][4]={ 279 {1,2,3,4}, 280 {5,6,7,8}, 281 {9,8,7,6} 282 }; 283 284 練習: 285 列印: 5*5 的二維陣列的對角線的值 286 int arr[5][5]={ 287 {1,2,3,4,5}, 288 {}, 289 {}, 290 {}, 291 {} 292 293 }; 294 295 --------------------------------------------------------- 296 多維陣列: 297 *》姿勢: 298 int arr[2][3][4][5][6][7]; 299 分析: 300 這是一個 6維陣列 301 該陣列由 2個 5維陣列組成 302 每一個5維陣列有 3個 四維陣列組成 303 每一個4維陣列 由 4個 三維陣列組成 304 每一個三維陣列 由 5個 二位陣列組成 305 每一個二維陣列由 6個 一維陣列組成 306 每一個一維陣列 由 7個 int 型別組成 307 308 打印出每一個值: 309 int i,i,k,x,y,z; 310 for(i=0;i<2;i++) 311 { 312 for(j=0;j<3;j++) 313 { 314 for(x=0;x<4;x++) 315 { 316 for(y=0;y<5;y++) 317 { 318 for(z=0;z<6;z++) 319 { 320 for(k=0;k<7;k++) 321 { 322 printf("%d",arr[i][j][x][y][z][k]); 323 } 324 } 325 } 326 } 327 } 328 329 } 330 331 -----------------------------------------