C语言(指针)

指针 变量的定义
一般格式 基类型名 *指针变量名
基类型名 ; 指针变量所指向的类型名称

  • : 表示他后面的类型名是指针类型
    指针变量名 : 所定义的指针变量的名称
    赋初值
    用=&变量名 来给指针变量赋初值
    法一: int x,*p=&x;
    法二:int x,*p; p=&x;
    &符号后的变量名必须是 已近定义过的
    基类型与指针变量类型相同

指针变量必须赋初值
一般指针变量还没有一个确切地址可以赋值的时候,
int *p=NULL; 空指针 // 空指针是一个定义在标准库的值为0 的常量

引用指针变量所指向的变量
用 *指针变量名 来指向该变量间接访问的变量
int x,*p=&x
*p=12
#include<stdio.h>

int zhizheng(int x)
{
int *p=&x;
*p=12;
return x;
}

int main()
{
int b,x=1;
b=zhizheng(x);

printf("%d",b);
return 0;
}
//指针变量 交换
#include<stdio.h>
int main()
{ int x,y;
int *p,*p1,*p2;
x=8;y=6;
p1=&x;
p2=&y;
if(x>y)
{ p=p1;
p1=p2;
p2=p;
}

printf("%d %d",*p1,p2);
return 0;
}
…指针变量加减一个整数n
/将指针指向的当前位置 向前或者向后移动n个偏移量(n
sizeof(基类型))
//两个指针变量相加
#include<stdio.h>
int main()
{ int a=1,*p;
p=&a;
p=p+2;

printf("%d",*p);
return 0;
}

两个指针变量相减所得之差是两个指针所指变量之间相差的地址单元
实际上就是两个指针值及地址值相减之差再除以基本类型的长度,也就是它的字节数
p1 -p2=(2008-2000)/2=4
指针变量相加意义不大
p1==p2 指向同一变量
p1>p2 p1处于搞地质位置
p1<p2 p1处于地地址位置

指针的基础内容 经提供了一种间接访问变量的方式,似乎不··能发现指针的魅力所在, 指针真正的魅力是需要将后面的内容综合起来应用的
int *pi //整型指针变量 int(*qi)[5];//整型数组指针
char pc //字符型指针变量 charqc[5] //字符型指针数组
float *pf //浮点型指针变量 float(qf)(); //浮点型函数指针 ()是函数的标志
struct stu
ps //结构体指针变量 struct stu *qs(); //结构体指针函数 ()函数标志
特别的指针还可以作为函数参数 来达到引用传递的目的

指针与一维数组
p=array; (将数组array首地址=》P)
p=&array[i] 将数组元素地址给=>p

#include<stdio.h>
void main()
{
int a[3],i;//一维整型数组
int *p =a;//整型变量
for(i=0;i<3;i++)
scanf("%d",&p[i]);
printf("\n");
p=a;
for(i=0;i<3;i++)
printf("%d",p[i]);
}//下标法访问

#include<stdio.h>
void main()
{
int a[3],i;//一维整型数组
int p =a;//整型变量
for(i=0;i<3;i++)
scanf("%d",p++);
printf("\n");
p=a;
for(i=0;i<3;i++)
printf("%d",
(p++));
}//指针法访问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

约卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值