指针入门

本文详细介绍了C语言中的指针概念及其应用。首先解释了指针作为一种数据类型用于表示内存地址的基本原理,接着阐述了指针变量的四个关键属性,并通过实例演示了如何使用指针来访问和修改变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于本人觉得指针没有学好,所以在此详细的介绍一下。

1.简单的说,指针就是一种数据类型,用来表示内存地址

2.在C语言中,表示内存地址的数据类型就是指针类型,所以,地址就是指针型数据,一个变量的地址就是一个指针型常量,用来保存地址的变量就是一个指针型变量,通过指针访问内存空间的方式为间接方式。

3.普通变量有两个属性,而指针变量则关联到4个属性。

1)指针变量的地址,即为指针变量分配的内存空间的地址。

2)指针变量的值,即为内存空间的内容

3)以指针变量的值为地址的空间地址,也称为指针指向的空间地址。

4)指针指向的内存空间的内容

虽然指针变量的值和其指向空间地址的值是一样的,但实际上还是有本质的区别。指针变量的值,为一个内存空间的内容,是可以改变的。指针变量指向的空间的地址是一个内存空间的地址,这是一个常量,本身是不可改变的。

4.定义指针变量的标准形式如下:

    数据类型名* 指针变量名

指针操作符*可以放在它俩中间的任意位置。

由于指针类型存储的是地址的值,因此,其字节长度由系统的内存地址长度决定。

下面测试一下指针类型的字节长度。

int main(int argc, char *argv[])
{
	printf("sizeof(int*) = %d\n",sizeof(int*));
	printf("sizeof(char*) = %d\n",sizeof(char*));
	printf("sizeof(float*) = %d\n",sizeof(float*));
	return 0;
}
输出结果都为4.

由此可见,指针类型所占空间为4个字符,与其指向的内存存储的数据类型无关。

5.指针变量的一次赋值。‘

为指针变量赋值就是为指针设定它指向的内存空间的过程。指针变量只能保存内存地址,因此给指针变量赋值时必须献给它一个地址。

char c = 'a';
char * cp;
cp = &c;
cp指向变量c的空间,要访问c的内容,就可以使用直接访问和间接访问两种方式。

printf("%c",c);     //直接访问
printf("%c",*cp);    //间接访问
下面写个小例子,演示如何使用指针访问和修改变量。

int main(int argc, char *argv[])
{
	int a = 2;
	int *b;          //定义指针变量 
	b = &a;          //使指针变量b指向a的内存空间 
	printf("\ta=%d\n",a);//通过变量a访问a的内存空间   a=2
	printf("\t*b=%d\n",*b);//通过指针变量b访问a的空间 *b=2
	*b = 3;          //改变b指向空间的内容 
	printf("\ta=%d\n",a);  //通过变量a访问a的内存空间   a=3
	printf("\t*b=%d\n",*b);//通过指针变量b访问a的空间   *b=3
	return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值