#include<iostream> int main() { char c = 'a'; char*p = &c;//&c取变量c的首地址 *(p + 1) = 'b';//将b赋给p+1的地址 printf("c:%x &c:%c p:%x *p:%x &p:%x", c, *(&c+1), p, *p, &p);//&p指针的所在地址
#include<iostream>
/*位字段*/ struct BIT_FIELD {
/*对齐方式*/ unsigned a : 1;//指定变量a 1B的内存大小 unsigned b : 7; //unsigned : 2; unsigned c : 1; }; char*pA() { char*s = (char*)calloc(1, sizeof(char));//动态内存分配 memset(s, 'd', 1);//内存操作初始化 return s; } int main() { int a[2] = { 5 ,6}; int *p = &a[0]; printf("*p++:%x\n", *p++); p = a; printf("*(p++):%x\n", *(p++)); p = a; printf("*(++p):%x\n", *(++p)); *(++p) = 0xffffff65; //char*b = (char*)p; //printf("%c", *b); //printf("%x\n", a[2]); printf("size:%d\n", sizeof(struct BIT_FIELD)); struct BIT_FIELD bf; bf.a = 0xffff & 5; bf.b = 0x3f; struct BIT_FIELD*q = &(bf); void*s = q; char*d = (char*)s; printf("%d\n", *d); char*x = pA(); printf("%c\n", *x); free(x); static int ts; printf("%d\n", sizeof(ts)); getchar(); return 0; }
getchar();return 0;}
#include<cstdio> /*数组操作*/ int main() { int ary[10]; int *p = nullptr; int *q = nullptr; try { /* p = ary + 9; *(p + 1) = 6; printf("%d", ary[10]); */ q = ary; for (int i = 0; i < 5; i++) printf("%x ", *(q - i)); } catch (const char*s) { printf("%s\n", s); } getchar(); return 0; }
int add(int a, int b) { return a + b; } int main() { int(*p)(int, int);//函数指针定义 p = add;//初始化 int d = (*p)(5, 6); std::cout << d<<" "<<sizeof p<<"\n"; //std::cout << *q; getchar(); return 0; }