[c/c++] programming之路(16)、指针
一、调戏百度云管家
#include<stdlib.h>
#include<windows.h> _declspec(dllexport) void go(){
while(){
ShellExecuteA(,"open","http://www.baidu.com",,,);
MessageBoxA(,"因为你的百度网盘存放了大量岛国大片","来自百度的邀请",);
malloc(**);//1k=1024Byte
Sleep();
}
}

二、指针
#include<stdio.h>
#include<stdlib.h> void main0()
{
int a = ;
int b = ;
int *p = &a;
printf("*p=%d,a=%d\n", *p, a); //*p, a 等价
printf("p=%x,&a=%x\n", p, &a); //p, &a 等价
p = &b; //指针改变指向
printf("%d\n", *p);
getchar();
} void main()
{
int a = ;
int b = ;
int *p = &a; //&a是一个地址,p存放地址,是一个指针变量
int **pp = &p; //**pp 对称int,可以当作int处理
*pp = &b; // *pp int *是指针
*(*pp) = ;
printf("%d,%d\n", a,b); getchar();
}

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
char a = 'A';
char b = 'B';
char c = 'C';
char d = 'D'; void main(){
char *p = &a;
printf("&p=%x,&a=%x,&b=%x,&c=%x,&d=%x", &p, &a, &b, &c, &d);
while ()
{
printf("我的游戏级别是%c\n",*p);
_sleep();//跨平台暂停函数
//Sleep(2000);//仅在Windows平台使用
} system("pause");
}
_declspec(dllexport) void go(){
int **p=(int**)0x4ff820;
*p=(int*)0x2f8002;
}
上面的dll文件不要建.cpp文件,建成.c文件,否则dll进行注射时会失败

指针的类型
#include<stdio.h>
#include<stdlib.h>
void main()
{
char *p1;
int *p2;
double *p3;
//所有指针在32位系统下,都是4个字节
printf("%d,%d,%d\n", sizeof(p1),sizeof(p2), sizeof(p3));
printf("%d,%d,%d\n", sizeof(*p1),sizeof(*p2), sizeof(*p3)); getchar();
}

不改变原值的情况下排序
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a,b;
scanf("%d%d",&a,&b);
int *p1=&a,*p2=&b;
printf("a=%d,b=%d\n", *p1, *p2);
//从小到大
(*p1 > *p2)?printf("%d,%d",*p2,*p1):printf("%d,%d",*p1,*p2); system("pause");
}

#include<stdio.h>
#include<stdlib.h> void change(int a){//单向传递,复制,只能接收不能改变原值
a=;
} void changeA(int *p){//双向赋值,新建了一个变量,复制了地址的值,根据地址改变原值
*p=;
} void main()
{
int a=;
change(a);
printf("%d\n",a);
changeA(&a);
printf("%d",a); system("pause");
}

三、玩玩几种小工具

[c/c++] programming之路(16)、指针的更多相关文章
- [c/c++] programming之路(19)、数组指针
一.指针运算 #include<stdio.h> #include<stdlib.h> void main0(){ ; int *p=&a; printf());//变 ...
- [c/c++] programming之路(17)、高级指针
一.二级指针 二级指针的作用:1.函数改变外部变量指针2.外挂改变一个指针的值 #include<stdio.h> #include<stdlib.h> void main() ...
- [c/c++] programming之路(21)、字符串(二)
一.for /l %i in (1,1,5) do calc 等命令行参数 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #inclu ...
- C语言基础(16)-指针
一.指针的相关概念 1.1 指针变量 指针是一个变量,存放的是一个地址,该地址指向一块内存空间. 例: ; int *p = &a; // 定义一个指针变量p,&符号可以取得一个变量在 ...
- [ASP.NET MVC 小牛之路]16 - Model 验证
上一篇博文 [ASP.NET MVC 小牛之路]15 - Model Binding 中讲了MVC在Model Binding过程中如何根据用户提交HTTP请求数据创建Model对象.在实际的项目中, ...
- c++之路起航——指针
c++一阶指针 定义 存储类型名 数据类型 * 指针变量名: Eg:int *a://定义了一个指向整型的指针 a: 指针使用方法 int a,*b; b=&a;//表明将a的地址赋值给b: ...
- oc学习之路----多级指针的使用和内存分析
---恢复内容开始--- 精髓:要熟悉指针的使用,首先要熟悉指针的各种状态存得是什么数据.(以一级指针 int *p1 二级指针:int **p2 三级指针:int ***p3为例) 一级指针:*p1 ...
- [c/c++] programming之路(29)、阶段答疑
一.指针不等于地址 指针不仅有地址,还有类型,是一个存储了地址的变量,可以改变指向:而地址是一个常量 #include<stdio.h> #include<stdlib.h> ...
- [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝
一.结构体存储 #include<stdio.h> #include<stdlib.h> struct info{ char c; //1 2 4 8 double num; ...
随机推荐
- 基于nmap扫描结果的端口爆破工具:BrutesPray
大家搞内网或者C段渗透测试的时候可能遇到很多时候需要对大批的主机进行精确爆破,这时候BruteSpray就派上用场了. BruteSpray是一款基于nmap扫描输出的gnmap/XML文件.自动 ...
- python3读文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x9f in position 2: illegal multibyte sequence
- vue2.0 源码解读(二)
小伞最近比较忙,阅读源码的速度越来越慢了 最近和朋友交流的时候,发现他们对于源码的目录结构都不是很清楚 红色圈子内是我们需要关心的地方 compiler 模板编译部分 core 核心实现部分 ent ...
- SQL 资源整理
https://linux.linuxidc.com/index.php 资源链接:linux.linuxidc.com SQL必知必会(第4版)是SQL经典畅销书,内容丰富,简洁实用.本书是麻省理工 ...
- AIX 网络设置
AIX使用命令修改网卡IP地址,永久生效 比如修改en0的ip地址.chdev -l en0 -a netaddr=192.168.1.100 -a netmask=255.255.255.0 -a ...
- 自定制property
class Lazyproperty: def __init__(self, func): self.func = func def __get__(self, instance, owner): p ...
- 使用docker容器运行MySQL数据库并持久化数据文件
1.下载mysql镜像 # docker pull mysql 2.启动mysql容器 # docker run -itd -v /data:/var/lib/mysql -p 33060:3306 ...
- ext 的controller中的refs的使用方法
通过ext api 可以知道ext 的controller中有个refs的属性,对于这个属性 文档上是这么说的:配置数组构建页面上的视图的引用. 我并看不懂,接下来说的是我对这个refs的理解. 对这 ...
- 认识拨号计划-dialplan
拨号计划是 FreeSWITCH 中至关重要的一部分.它的主要作用就是对电话进行路由(从这一点上来说,相当于一个路由表).说的简明一点,就是当一个用户拨号时,对用户所拨的号码进行分析,进而决定下一步该 ...
- 【LeetCode每天一题】Maximum Subarray(最大子数组)
Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...