第21节 指针基础

-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.

第一:

指针的作用

#include <stdio.h>

int main()
{
    
    int i = 5;
    int* p = &i;  //指针p
    
    printf("%d, %08X\n", i, p);
    
    //i= 10;
    *p = 10;
    
    printf("%d, %08X\n", i, p);

    return 0;
}

 

第二:

指针本质

  指针在本质上也是一个变量
  指针需要占用一定的内存空间
  指针用于保存内存地址的值

 

第三:

* 号的意义

  在指针声明时 ,* 号表示所声明的变量为指针

  在指针使用时 , * 号表示指针所指向的内存空间中的

 

  *号类似一把钥匙,通过这把钥匙可以打开内存,读取内存中的值

//指针声明
int i = 0;
int j = 0;
int* p = &i;

//取值
j = *p;

 

第四

1. 指针占用的内存空间
2. 指针的地址
3. 通过*号写内存

#include <stdio.h>

int main()
{
    int i;
    //指针
    int* pI;
    char* pC;
    float* pF;
    
    //通过取地址符&让 pI指向i
    pI = &i;
    
    //pI所保存的值  i的地址值 变量i目前所保存的值 
    printf("%0X, %0X, %d\n", pI, &i, i);
    //指针类型int*的大小    变量pI的大小  pI的地址
    printf("%d, %d, %0X\n", sizeof(int*), sizeof(pI), &pI);
    //指针类型char*的大小   变量pC的大小  pC的地址
    printf("%d, %d, %0X\n", sizeof(char*), sizeof(pC), &pC);
    //指针类型float*的大小  变量pF的大小  pF的地址
    printf("%d, %d, %0X\n", sizeof(float*), sizeof(pF), &pF);
    
    return 0;
}

 

第五:

1.形参与实参的区别

形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 

举例:

    1. 比如你定义一个函数void add(int a, int b),这里的a和b就是形参。 

    2. 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参。

    

 

2.传值调用与传址调用

?  指针是变量 , 因此可以声明指针参数
?  当一个函数体内部需要改变实参的值 , 则需要使用指针参数
?  函数调用时实参值将复制到形参
? 指针适用于复杂数据类型作为参数的函数中

 

利用指针(传址调用)实现变量交换函数

#include <stdio.h>

#define SWAP(a,b) {int t=a; a=b; b=t;}

void swap(int* a, int* b)
{
	int t=*a;
	*a=*b;
	*b=t;
}

int main()
{
	//这里需要交换sawp()函数外部i和j的值,则需要用到指针的 传址调用 
	int i = 1;
	int j = 2;
	
	printf("i=%d,j=%d\n",i, j);
	
	swap(&i,&j);//传址调用,用到取地址符 
	
	printf("i=%d,j=%d\n",i, j);
	
	return 0;
}

 

 

 

 

                                            指针小结

?   指针是C 语言中一种特别的变量
?  指针所保存的值是内存的地址
?   可以通过指针修改内存中的任意地址内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值