复习指针

本文详细介绍了C语言中的指针概念,包括指针的定义、赋值、类型大小及指针运算。通过示例展示了如何使用指针进行变量交换、通过地址访问和修改值。还探讨了空指针、野指针以及动态内存分配。同时,文章提供了多个实际的程序示例,如实现字符串复制、判断子串、数组和指针的关系,以及指针和字符串的交互。
摘要由CSDN通过智能技术生成

指针的定义:

指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据。

格式:如int *a short *a  char *a....

含义: int a; int *p=&a(也可以写成int *p p=&a);指定P指向以变量a命名的内存空间

     赋值        a=100;通过变量名访问空间

                    *p=100通过地址访问P所指向内存空间,并修改那个空间的值

指针类型大小:不管是int *还是char *,long *都是4个字节;sizeof(int*)

                       注意:char*p=&a;

                              p+1 指向地址加一个字节(0x100 到0x101)

                             int*p =&a; p+1指向地址向后移动4个字节(0x100到0x104)

程序:将a和b的值互换

#include <stdio.h>

void swap(int *x ,int *y)//函数调用后形参的值会被清空,在没有返回值的情况就失去意义
{
   int temp;
   temp=*x;
   *x=*y;
   *y=temp;


}

int main()
{
  int a=1,b=3;
  swap(&a,&b);//所以要想通过形参改变实参的值需要传递地址,通过地址找到a和b的内存空间改变其值;
  printf("%d%d\n",a,b);//虽然函数调用形参x 和y被释放但其实只是释放指针x和y里面的地址,修改的值被保存下来

}
计算指针:

#include <stdio.h>
int main()
{
  int x=0,j=0;
     int *px=&x;
     printf("%p\n",px);
   j=*px+3;
   printf("%d\n",j);.//通过指针p访问x这段内存空间*PX取x里面的值+3
   j=++*px ;//先取值后加1
   printf("%d\n",j);
   j=*px++

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值