-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path高级指针练习汇总.c
85 lines (56 loc) · 1.26 KB
/
高级指针练习汇总.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
// int* p = (int*)0x0012ff44;
// *p = 20;
// printf("%x", *p); //运行报错 :常量指针不能够操纵内存 访问冲突
// return 0;
//}
//int main()
//{
// int a = 10;
// int* p = &a;
// printf("%d\n", *p);
// return 0;
//}
// 一些值得思考的题目:
//int main()
//{
// int a[5] = { 1, 2, 3, 4, 5 };
// int* ptr = (int*)(&a + 1);
// printf("%d %d", *(a + 1), *(ptr - 1)); //运行结果
// return 0;
//}
//int main()
//{
// char a[5] = { 'A', 'B', 'C', 'D' };
// char(*p3)[5] = &a;
// char(*p4)[5] = a;
// printf("%c %c", *(p3 + 1), *(p4 + 1)); //输出的结果是什么?
// return 0;
//}
//int main()
//{
// int a[4] = { 1, 2, 3, 4 };
// int* ptr1 = (int*)(&a + 1); //输出的结果是?
// int* ptr2 = (int*)((int)a + 1);
// printf("%x %x", ptr1[-1], *ptr2);
// return 0;
//}
//int main()
//{
// int a[5][5];
// int(*p)[4]; //能否正确理解数组指针的概念
// p = a;
// printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
// return 0;
//}
//int main()
//{
// int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// int* ptr1 = (int*)(&aa + 1);
// int* ptr2 = (int*)(*(aa + 1));
// printf("%d,%d\n", *(ptr1 - 1), *(ptr2 - 1)); //输出的结果是?
// return 0;
//}