C指针初阶

#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;
//}

posted @   morphism  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示