一级指针真真的用法


#include<stdio.h>

#include<stdlib.h>

/*

总结:不管他前面有几个心 

*/

Void getData01(char *p1)

//char *p 形参 行参 元素被调用该函数的参数,只不过具有对外属性而已

{

Printf(“getData01() begin\n”);

Return;

}

Void getdata02(char **p2)//char **p2 行参  p2是变量   

{

Printf(“getData01() begin\n”);

Return;

}

Void getdata03(char *******p7)*******p7 行参 p2是变量   

{

Printf(“getData01() begin\n”);

return ;

}

Void main()

{

Int  *p1=null;

Int  **p2=null;

Int a=10;

Int *p3=null;

Int c=0;

a=20;//直接通过变量修改a的值

P3=&a;//a的地址赋值给p3

P3=30;//间接的修改p3的值

C=*p3;

//p3的里面的值,赋值给c;注意不是地址,解释*p3里面放着的a的地址,a=20,在将 20赋值给c;

总结:*p的意义,*就像一把钥匙,根据一个指针的值,去修改后面的内存空间

/*

While*p!=’\0’)

{

*p++  =  *p2++;

解释 p2++是取值,取出来的值赋值给*p++

}

*/

 

}

//练习

Void main()

{

Char *p1=null;

//定义一个char类型的指针变量p1,将p1的值赋值为null

Char *p2=null;

//定义一个char类型的指针变量p2,将p2的值赋值为null

Char buf1[100]={0};

//定义一个char类型的数组为buff1,其中的buf1的元素个数是100

Char buf2[100]={0};

//定义一个char类型的数组为buff2,其中的buf2的元素个数是100

Strcpy(buf,”abcdefg”)

 

P1=buf1;

//buf1的首地址赋值给p1

P2=buf2;

//buf2的首地址赋值给p2

While(*p1 !=’\0’)

{

*p2=*p1;

//*放在左边是赋值

//*放在右边是取里面的值

P2++;//向后移动一个字节,如果是int类型的话就移动4个字节

P1++;

}

}

重点

问一下你是怎么理解下面的指针的

1、对参数的指针类型应该怎么理解

a) 理解角度需要从两个角度出发

i. 占在c/c++编译器的角度对型参,如果是指针类型,c编译器只会分配4个字节

ii. Char *p形参  p是变量

2、指针的数据类型到底是什么

a) 指针的数据类型是值它所指的内存空间的数据类型

i. 指针的数据类型具有依附特性

结论:指针的补长,根据所指内存空间类型来定

void senddata01(char    *p1); void senddata01(char*            p1);

void senddata02(char **    p1); void senddata02(char *     *p1);  void senddata02(char         **p1);

void senddata03(char ***p1);

void senddata04(char *p[]); void senddata04(char *     p[]);  void senddata04(char *p    []);

void senddata05(char (*p)[10]); void senddata05(char (*p)             [10]);

void senddata05(char *****p4);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值