指针小练-c语言

说明:

  • 链表比数组更加灵活。

    例如:有一串已经从小到大排好序的数 2 3 5 8 9 10 18 26 32。
    	  现需要往这串数中插入 6 使其得 到的新序列仍符合从小到大排
    	  列。如我们使用数组来实现这一操作,则需要将 8 和 8 后面的
          数都依次往后挪一位。
    
  • 链表如何实现呢?

    1.使用指针。

    指针就是用来存储内存地址的,为什么要分不同类型的指针呢?
    因为指针变量存储的是一个内存空间的首地址(第一个字节的地址)
    但是这个空间占用了多少个字节,用来存储什么类型的数,则是由指
    针的类型来标明的。
    

    2.使用指针和动态分配内存函数 malloc。

    a.使用 malloc 函数时需要用到 stdlib.h 头文件 !!! 
    malloc 函数的作用就是从内存中申请分配指定字节大小的内存空间。
    如果你不知道 int 类型是 4 个字节的,还可以使用 						  	
    sizeof(int)获取 int 类型所占用的字节数,
    如下:
    			malloc(sizeof(int));
    

    b. malloc 函数的返回类型是 void * 类型。
    	void * 表示未确定类型的指针。
       在 C 和 C++中,void * 类型可以强制转换为任何其他
       类型的指针。
    

代码部分:

#include <stdio.h>
#include <stdlib.h>//!!!
int main() {
	
	int* p;		//定义一个指针
	p = malloc(sizeof(int));	//获取动态分配的内存空间地址
	*p = 10;	//向内存空间中写入10
	printf("%d", *p);	//输出内存中的值
	getchar(); getchar();
	return 0;

}

输出:

10

总结:

1.链表可以处理预先不知道变量个数的问题。

2.&叫取地址符。

3.在 C 语言中 * 号有三个用途,分别是:

  a.	乘号,用做乘法运算,例如 5*6。
  b.	申明一个指针,在定义指针变量时使用,例如 int *p;。
  c.	间接运算符,取得指针所指向的内存中的值,
        例如 printf("%d",*p);。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

halisi7

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

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

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

打赏作者

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

抵扣说明:

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

余额充值