指针的初步应用

一.&的使用

int a=1;
printf("%d\n",a);
printf("%d\n",&a);

在这个程序中,输出结果是不同的,因为&a表示a所在的地址

二. &与*

&:取变量的地址
*:按照指向关系访问所指向的对象(解引用)

int a;
int* p ;
p = &a;
printf("%p\n", p);
printf("%p\n", &a);

两函数输出相同,表示p存放了a的地址

三.*与**

*是一级指针,**是二级指针

int a ;
int* p ;
p = &a;
int** q ;
q = &p;
printf("%d\n", p);
printf("%d\n", q);

表示p中存放了a的地址,q存放了p的地址,即a的地址的地址

同理, ***等 也是如此

四.指针与数组

数组变量是特殊的指针,数组变量本身表达地址

int a[] ⇔ int* const a

#include<stdio.h>
int main()
{
	int i = 1;
	int a[5] = { 1,2,3,4,5 };
	int* p = &a[i];
	for (i = 1;i <= 5;i++)
	{
		printf("%p\n", p);
		p += i;
	}
	return 0;
}
int main()
{
	int i = 1;
	int a[5] = { 1,2,3,4,5 };
	for (i = 1;i <= 5;i++)
	{printf("%p\n", &a[i]);}
	return 0;
}

五.NULL指针

NULL指针是特殊的指针变量,表示不指向任何东西

int main() 
{
    int* p = NULL;
    printf("p的地址为%p\n", p);
    return 0;
}

c8a4f04da9f54c84ab14b0cfeb7dfc6c.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值