#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main()
//{
// //编号-地址-指针
// // 2^32种内存单元的编号
// //0000000000000000000000000000000000000000
// //....
// //11111111111111111111111111111111111111111
// 指针在大小在32位平台是4字节,在64位平台是8字节
// return 0;
//}
//int main()
//{
// int a = 10;//占4个字节
// int* pa = &a;//拿到的是a的4个字节中第一个字节的地址
// *pa = 20;//pa指针变量
// return 0;
//
//}
//int main()
//{
// int* pa;
// char* pc;
// float* pf;
// printf("%d\n", sizeof(pa));//4
// printf("%d\n", sizeof(pc));//4
// printf("%d\n", sizeof(pf));//4
// return 0;
//}
指针类型的意义
//1.指针类型决定访问权限-指针解引用的权限有多大
//2.指针类型决定了,指针走一步,能走多远 (步长)
//int main()
//{
// //0 1 2 3 4 5 6 7 8 9 a b c d e f
// //11111111
// // 8421
//
// int a = 0x11223344;
//
// int* pa = &a;
// *pa = 0;//整型指针解引用1次,访问4个字节,4个字节内容全变成0
//
// return 0;
//}
//int main()
//{
// int a = 0x11223344;
// char* pc = &a;
// *pc = 0;//字符指针解引用一次,访问1个字节,
//
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// int* p = arr;
// char* pc = arr;
// double* pd = arr;
//
// //跳过4个字节,一个字符
// printf("%p\n", p);//006FFA80
// printf("%p\n", p + 1);//006FFA84
//
// //跳过1个字节
// printf("%p\n", pc);//006FFA80
// printf("%p\n", pc + 1);//006FFA81
//
// printf("%p\n", pd);//006FFA80
// printf("%p\n", pd + 1); //006FFA88
//
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// int* p = arr;
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// *(p + i) = 1;//p+i其实是下标为i的地址
// //如果希望访问数组时是按整型元素来访问的话,最好把他交给一个整型指针
// }
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// char* p = arr;
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// *(p + i) = 1;
// }
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// double* p = arr;
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// *(p + i) = 1;
// }
// return 0;
//}
C指针初阶
于 2022-05-04 15:27:28 首次发布