C语言 指针

        C语言中的指针是指向内存中某个地址的变量。通过指针,可以直接访问或操作该地址处存储的数据。指针是存放的是地址,int*中,int说明指向的是int类型,*表示指针。

在C语言中,可以通过以下方式声明一个指针变量:

dataType *ptr;
int* p;		// 指针
int* p1, p2, p3;		//	一个指针两个int类型
int* p1, * p2, *p3;		//都是指针

 

        其中dataType表示指针所指向的数据类型,ptr表示指针变量的名称。

指针大小: 32系统为4个字节,64为系统为8个字节

	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));	// 全是4或8与系统位数有关,4*8 32 8*8 64

        指针变量可以通过取地址运算符&来获取一个变量的地址。例如: 

int num = 10;
int *ptr = #

        上述代码中,ptr是一个指向整型变量num的指针。通过&num可以获取num的地址,并将其赋值给ptr

        可以使用解引用运算符*来访问指针所指向的内存中存储的数据。例如:

int num = 10;
int *ptr = #
printf("%d\n", *ptr); // 输出10
#include <stdio.h>

int main() 
{
	int a = 10;		//向内存申请4个字节,存储10 2**8*4比特
	printf("%d\n", &a);	//取地址,打印出来是错的,因为d只有4位,而其实有64位或32位
	int* p = &a;		//指针,p就是指针变量,也是地址

	char ch = "w";
	char* pc = &ch;
	//*p  解引用,通过p这个地址找对对象返回
	*p = 20;   // *p 就是p指的对象  p是指针变量
	printf("%d\n", a);

	return 0;
}

        上述代码中,*ptr表示访问ptr所指向的内存中存储的数据。因此,*ptr的值为10。

        指针还可以进行指针运算,如加法、减法等。例如:

int num = 10;
int *ptr = #
ptr++; // 指针向后移动4个字节(根据指针所指向的数据类型确定),指向下一个相邻的内存地址

        上述代码中,ptr++表示将指针向后移动一个单位,即指向下一个相邻的内存地址。

        需要注意的是,使用指针时需要确保指针指向的内存地址是有效的,否则可能会导致程序崩溃或产生未定义的行为。同时,指针也需要及时进行释放,以避免内存泄漏。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值