指针初窥

本文深入解析了C语言中指针的基本概念,包括如何改变指针指向的值,以及如何通过指针调用函数。通过实例演示了如何在C语言程序中灵活运用指针和函数指针,提供了丰富的实践经验和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

突然发现题目写的有些大,一下子不知道应该怎么写了

//改变一个数据,需要数据的地址,也就是指针,int需要int*
//改变一个指针变量,需要指针的地址,二级指针,int*需要int **
//改变一个二级指针,需要二级指针的地址,三级指针,int**需要int ***
//改变一个指针,指针指向数组,需要指针的地址,数组的首地址
//函数指针,找到地址,进行类型转换,调用函数。

 

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>


void tasklist()
{
    system("tasklist");
}

int add(int a, int b)
{
    system("tasklist");
    return a + b;
}






void main()
{

    char level[5] = { 'A', 'B', 'C', 'D', 'E' };
    int friends = 10;
    int money = 100000;
    int *pFriends = &friends;
    int *pMoney = &money;
    char *pLevel = level;
    printf("&friends=%x,&money=%x\n", &friends, &money);
    printf("&pFriends=%x,&money=%x\n", &pFriends, &money);
    printf("&pLevel=%x,&level=%x,level=%x\n", &pLevel,&level,level);
    printf("&tasklist=%x\n", &tasklist);
    printf("&add=%x\n", &add);


    ;
    while (1)
    {
        printf("xxx有%d个女朋友,月薪%d元,等级为%c\n", *pFriends, *pMoney,*pLevel);
        Sleep(5000);
    }


    system("pause");

}
game.c
_declspec(dllexport) cly()
{
    /*int **p1 = 0x36fe38;
    **p1 = 20;*/

    /*char **p = 0x30f900;
    *p += 1;*/

    /*void (*p)();
    p= (void (*)())0x13711e5;
    p();*/

    int(*p)(int, int);
    p = (int (*)(int,int))0x12011ea;
    printf("%d",p(20,40));

}
gua.c

 

转载于:https://www.cnblogs.com/yinmo/p/4248441.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值