變數型別:
1:ptrdiff_t 有符號整數型別,兩個指標相減的結果
char str[] = "hello";
char *strptr = str; //首地址
char *strendptr = strptr + strlen(str); //尾地址
ptrdiff_t len = strendptr - strptr;
2:size_t 無符號整數型別, sizeof 關鍵字的結果
3:wchar_t unsigned short wchar_t資料型別一般為16位或32位 (char是8位字符型別,最多只能包含256種字符),用在國際化程式的實作中,但它不等同于unicode編碼,unicode編碼的字符一般以wchar_t型別存盤(百度)
wchar_t name[] = L"中文";
setlocale(LC_ALL, "zh-CN.UTF-8"); //設定本地化
wprintf(L"%ls \n", name);
宏:
1: NULL 是一個空指標常量的值
2:offsetof() 一個結構成員相對于結構開頭的位元組偏移量,
1 typedef struct FClassStruct 2 { 3 int Num[50]; 4 char StudentName[256]; 5 int ClassNum; 6 } Class; 7 Class ClassInstance; 8 for (int i =0;i<50;i++) 9 { 10 ClassInstance.Num[i] = 3; 11 } 12 memset(ClassInstance.StudentName, 'a', 256); 13 ClassInstance.ClassNum = 10; 14 15 size_t NumOffset = offsetof(Class, Num); 16 size_t StudentNameOffset = offsetof(Class, StudentName);//50*4(int) 17 size_t ClassNumOffset = offsetof(Class, ClassNum);//256* 1 (char) 18 printf("NumOffset = %d \n", NumOffset); //0 19 printf("StudentNameOffset = %d \n", StudentNameOffset);//200 20 printf("ClassNumOffset= %d \n", ClassNumOffset); //456
char* ptr = &ClassInstance; int* numptr = (int*)ptr; printf("%d \n", *numptr); //3 ptr =( ptr + StudentNameOffset); printf("%s \n", ptr); //aaaaaaaaaaaaaaa-------- printf("%c \n", *ptr); //a
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/173095.html
標籤:C
上一篇:沁恒 WCH559 芯片入門指南
