变量类型:

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.cnblogs.com/wxiaop/p/13820438.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程

4775 0元 限免