#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main()
//{
// //指针+指针?NO!
// // 日期+/-天数
// // 日期-日期
// // 日期+日期?没什么用
// //
// return 0;
//}
//int main()
//{
//#define N_VALUES 5
// //指针的关系运算
// //for (vp = &values[N_VALUES]; vp > &values[0];)
// //{
// // *--vp = 0;
// //}
//
// //for (vp = &values[N_VALUES-1]; vp >= &values[0];vp--)
// //{
// // *vp = 0;
// //}//最后vp停在了-1的内存位置//实际在绝大多数的编译器上是可以顺利完成任务的,然而我们还是要避免这样写,因为标准并不保证他可行
// //标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但不允许与指向第一个元素之前的那个内存位置的指针进行比较
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// arr;//数组名是数组首元素的地址
// printf("%p\n", arr);//008CFA70
// printf("%p\n", &arr[0]);//008CFA70
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// int* p = arr;
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// printf("%p <==> %p\n", &arr[i], p + i);//p为首元素地址,p+i产生的就是下标为i的元素的地址
// // 0034FDE8 <= = > 0034FDE8
// // 0034FDEC <= = > 0034FDEC
// // 0034FDF0 <= = > 0034FDF0
// // 0034FDF4 <= = > 0034FDF4
// // 0034FDF8 <= = > 0034FDF8
// // 0034FDFC <= = > 0034FDFC
// // 0034FE00 <= = > 0034FE00
// // 0034FE04 <= = > 0034FE04
// // 0034FE08 <= = > 0034FE08
// // 0034FE0C <= = > 0034FE0C
//
// }
//
// for (i = 0; i < 10; i++)
// {
// *(p + i) = i;
// printf("%p\n", *(p + i));
// // 00000000
// // 00000001
// // 00000002
// // 00000003
// // 00000004
// // 00000005
// // 00000006
// // 00000007
// // 00000008
// // 00000009
// }
// return 0;
//}
//int main()
//{
// int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
// int* p = arr;
// //arr[2] <==> *(arr+2)<==> *(p+2) <==> *(2+p) <==> *(2+arr) ==2[arr]
// //2[arr] <==> *(2+arr)
// //[]-是一个操作符 2和arr是两个操作数
// //a+b
// //b+a
// printf("%d\n", 2[arr]);
// printf("%d\n", arr[2]);
// //arr[2]--> *(arr+2)--> *(2+arr)-->2[arr] 计算机编译时是将arr[2]转化为*(arr+2)运行的
//
// printf("%d\n", p[2]);//p[2]-->*(p+2)-->*(arr+2)-->arr[2]
// printf("%d\n", 2[p]);
// return 0;
//}
//int main()
//{
// int a = 10;
// int* pa = &a;//pa是指针变量,一级指针
// //ppa是二级指针变量
// int* *ppa = &pa;//pa也是变量,&pa取出pa在内存中起始地址
// //pppa是三级指针变量
// int** *pppa = &ppa;
// //套娃...
// printf("%p\n", pa);//006FF808
// printf("%p\n", ppa);//006FF7FC
// printf("%p\n", pppa);//006FF7F0
// //*pppa=ppa
// //*ppa=pa
// //*pa=a
// //***pppa=a
//
// return 0;
//}
指针数组-数组
//
//int main()
//{
// int arr[10];//整型数组-存放整型的数组就是整型数组
// char ch[5];//字符数组-存放的是字符
// //指针数组-存放指针的数组
// int* parr[5];//整型指针数组
// char* carr[5];//字符指针数组
//
// return 0;
//}
结构体初阶
于 2022-05-06 14:50:35 首次发布