一级指针总结

一、 什么是指针

指针就是地址,利用地址,它的值直接指向存放在电脑存储器中另一个地方的值,由于通过地址可以找到所需的变量单元,所以将地址形象化的称为“指针”

int main()
{
	int a = 1;
	int *p = &a;
	return 0;
}

在这里插入图片描述

二、指针加减整数

指针p加一个整数n表示的是指针所指向的之后的第n个元素地址,加减整数是按照单元格移动。

#include <stdio.h>
#include<stdlib.h>
int main()
{
	int n[2] = { 1,2 };
	int* p = n;
	printf("%d\n", n[1]);
	printf("%d\n", *p);
	printf("%d\n", *(p + 1));
	return 0;
}

三、指针解引用

定义了一个指向int类型指针p,并初始化p使其指向int类型的变量num,这里&num中的&是取地址操作符,当&作用于一个对象上时,它返回了该对象的地址。
所以这里指针p指向了num所对应的地址。

#include<stdio.h>
 
int main(void)
{
	int num = 10;
	int *p = &num;
	printf("%d 的地址是 %p\n", num, p);
	return 0;
}

*操作符为解引用操作符,它返回指针p所指的对象。

我们可以对*p赋值,从而改变p所指的地址上所保存的值,从而改变此地址所存储的变量num的值。

#include<stdio.h>
int main(void)
{
	int num = 10;
	int* p = &num;
	printf("%d\n", num);
	*p = 100;
	printf("%d\n", num);
	return 0;
}

四、指针与const结合

int a=10;
int b=20;
const int* p = &a;
在这种定义方式下,不允许通过解引用对a的值进行修改,但是可以对指针p所指向的元素进行修改:
例如:
*p = 10; //error
p = &b; //right


int const p = &a;
在这种定义方式下,不允许对指针p所指向的元素进行修改,但是可以通过解引用
p对a的值进行修改:
例如:
*p = 10; //right
p = &b;//error


const int a = 10; // 常变量
在这种定义方式之下,不仅对指针所指向的元素进行修改,而且不能通过指针对所指向元素的值进行修改。
例如:
int* q = &a; //error
*q = 20;//error

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值