C语言基础之指针

一、指针
1、指针就是存放地址的变量。一个指针变量占用4个字节。
int* pa;//int * pa;
2、指针类型、取地址、解引用
(1)指针类型
int* pa;//pa,*pa
int *pa;
int * pa;
语义:pa是一个指针,该指针指向一个int型的数据,即pa存放一个int型数据的地址。
int* pa,pb;//pa是int*,pb是int
int *pa,*pb
(2)取地址——&
int a=5;
int* pa=&a;//pa指向a,a是pa的目标,pa是a的指针,pa存放着a的地址。*pa
(3)解引用(取目标)——*
*pa=100;//将100赋值给pa的目标,即赋值给a,pa=100;
3、指针的用法//int add(int* p);
(1)将指针作为函数的参数,传递变量的地址,进而在多个函数中访问相同的内存数据。
(2)指针也可以作为函数的返回值,但是不要返回指向局部变量的指针。因为函数返回以后,其局部变量所占用的内存将随函数栈一起被释放,所得到的指针为野指针。
int add()
{
int* p;

return p;
}
4、常量、常量指针和指针常量
(1)const可以修饰普通变量,该变量就会被当做常量来处理,即其值一经过初始化就不能再被修改。
(2)常量指针:指向常量的指针,即无法通过该指针修改其目标。
const int* p;
int const* p;
(3)指针常量:指针型的常量,即无法修改其值的指针。
int* const p;
const int* const p;//常量指针常量,p本身不能修改,其目标亦不能修改。

//const的用法
//游戏、不想被其他人修改自己的代码,要用const
#include <stdio.h>
int main()
{
const int a=100;
//a=200;//a属于常量,不能修改
int b=1000,c=20;
const int* p=&b;//常量指针
//*p=1;//不能通过其目标去修改
p=&c;
printf("%d\n",p);

int* const p1=&b;//指针常量
//p1=&c;//不能通过其地址去修改
*p1=100000printf("%d\n",*p1);
const int* const p2=&b;//常量指针常量
//*p2=300;//不能通过其目标去修改
//p2=&c;//不能通过其地址去修改
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值