变量类型:
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
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!