2021-11-29学习笔记

        今天篮球场地板没干,体育课没上,开心。

        8:00~9:40 :数学课;

        10:00~12:00:学习指针;

        14:30~17:00:上课;

        17:30~18:30:刷网课,学习指针;

        刷题数:1;

        指针归纳总结1:c语言引用变量值便是通过变量类型和变量地址,地址形象化地称为“指针”。
        假如有以下定义:

int i=4;
int *i_point=&i;
printf("%d",i);//直接引用
printf("%d",*i_point);//间接引用

系统分配地址:2000~2003的4个字节给i;
存储单元地址:2000~2004;
存储单元内容:4;

指针是一个地址,而指针变量是存放地址的变量;
int是为指针变量i_point指定的“基类型“;基类型指定指针变量可指向的变量类型。因为系统调用变量是先取变量地址,之后按照基类型的存储方式和大小使用变量;
如i_point可以指向int型变量,但不能指向浮点型变量,也不能指向long long int型。因为存储方式和大小结果会有很大偏差;

*为指针运算符;作用与&相反,如第四行的*i_point便相当与i;
"*i_point"等价"i"即*i_point=5";与"i=5;"等价;
int *i_point=&i;相当于int *i_point; i_point=&i;

int  a,b;
int  *pointer_1=&a,*pointer_2=&b;
pointer_1=&a;//合法     
*pointer_1=&a;//不合法
float  *pointer_3;
pointer_3=2000;//不合法

指针作为函数参数:因为指针变量拥有变量地址,因此我们可以利用这一点就可以通过其他函数改变原变量。只需要将变量地址传过去。下面这个表格便是变量与指针作为函数参数是的区别。

实参变量指针
形参变量指针
传递的信息变量的值变量的地址
能否改变实参不能

例如:

#include <stdio.h>
int main()
{void swap(int *p1,int *p2);  
  int a,b;  int*pointer_1,*pointer_2; 
  printf("please enter a and b:");
  scanf("%d,%d",&a,&b); 
  pointer_1=&a; 
  pointer_2=&b;  
  if (a<b)  swap(pointer_1,pointer_2); 
  printf("max=%d,min=%d\n",a,b); 
  return 0;
 }    
void swap(int *p1,int *p2) 
{ int temp;
   temp=*p1;     
   *p1=*p2;
   *p2=temp;
}

注意:函数的调用可以(而且只可以)得到一个返回值(即函数值),而使用指针变量作参数,可以得到多个变化了的值。如果不用指针变量是难以做到这一点的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值