c指针点滴5-指针变量计算

//接口dll
_declspec(dllexport) void  go()
{
    char *p1;
    int  *p2;
    p1 = (char*)0x30fa83;//每次运行exe的时候输出地址值不同
    *p1= ‘c‘;
    p2 = (int *)0x30fa74;
    *p2 = 300;

}

#include <stdio.h>
#include <Windows.h>
void main()
{
    char ch = ‘A‘;
    int num = 45;
    double db = 12.5;
    char *p1 = &ch;
    int *p2 = &num;
    double *p3 = &db;
    printf("%x,%x,%x",p1,p2,p3);
    printf("\n%c,%d,%f",*p1,*p2,*p3);

    while(1)
    {
        printf("\n张三的级别是%c,张三年龄是%d,张三的账户有%fW",ch,num,db);
        Sleep(5000);
    }
    getchar();
}

功能:通过注射进内存 改变其值

时间: 2024-08-03 07:44:36

c指针点滴5-指针变量计算的相关文章

黑马程序员---C基础9【字符串的输入输出】【字符串相关函数】【指针】【指针变量初始】【二级指针】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [字符串的输入输出] 1.字符串输出: %s-------从给定的地址开始输出字符直到遇到\0停止: printf("%s\n",&a[3]);  printf("%s\n",a); char a[]="hellowo\0rd!"; 2.字符串输入: 从键盘上接收一个字符串,保存在以a为首地址的字符数组中 scanf("%s&

指针的含义——指针变量、指针的指针、指针使用的注意

指针其实很容易理解的,其他并不是大家想象的那么神奇,那么难. 一.指针的含义:指针其实就是一个变量,它所存放的不是数据,而是数据在内存中地址.当然指针也可以存放函数(方法)的地址,后面会讲到的.声明指针的关键符是*号,指向地址的关键符是&. 二.指针变量: 例如1:#include <stdio.h> int main {  int a =10;   //第一一个变量a,赋值为10 int *p = &a;   //p就是一个指针变量,所指向的就是变量a的地址 printf(&

征服C指针-C的变量种类

C语言的变量具有区间性的作用域.在开发一些小程序的时候也许我们并不在意作用域的必要性.可是,当你书写几万行,甚至几十万行的代码的时候,没有作用域肯定是不能忍受的.C语言有如下三种作用域. 1. 全局变量 在函数之外声明的变量,默认地会成为全局变量.全局变量在任何地方都是可见的.当程序被分割为多个源代码文件进行编译时,声明为全局变量的变量也是可以通过关键字extern从其他源代码文件中引用的. 2. 文件内部的静态变量 就算对于像全局变量那样呗定义在函数外面的变量,一旦添加了static,作用域就

【C语言】使用指向指针数据的指针变量,输出一组字符串

//使用指向指针数据的指针变量,输出一组字符串 #include <stdio.h> int main() { char * name[]={"beijing","huanying","nin","!"}; char **p; int i; for(i=0;i<4;i++) { p=name+i; printf("%s ",*p); } printf("\n"); re

c指针点滴三(指针运算)

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void main3() 5 { 6 int num = 89; 7 int *p = &num; 8 p++;//不可预测的值 指针++就是按照指针的类型大小前进一个类型的大小 9 //如果是int就前进4个 10 printf("%d",*p);//指针++只有在数组才有意义 11 } 12 13 //void main4() 14 //{ 15 // in

关于空指针NULL、野指针、通用指针

http://www.cnblogs.com/losesea/archive/2012/11/16/2772590.html 首先说一下什么是指针,只要明白了指针的含义,你就明白null的含义了.假设 有语句 int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000:那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10.现在定义:int *p:                 p=&a

指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏

指针 指针与数组 指针与字符串 指针与函数?? 指针与数组 1.数组名:数组元素首地址 eg: int array[3]={1,3,6}; 这里array 恒等于&array[0] 2.int *p = a; int *p = 0; int a[]={0}; 3.int *p = a; 均指向数组的首地址 *p是? *(p+1)是?(*p)+1是? *(p+1)决定向下移动几个字节是类型 4.指针可以当数组名使用 p[1] = 3; 恒等于a[1] ;恒等于*(p+1);恒等于*(a+1) 5.

C++教程:NULL 指针、零指针、野指针

C++教程:NULL 指针.零指针.野指针 1. 空指针.NULL指针.零指针 1.1什么是空指针常量 0.0L.".3 – 3.0 * 17 (它们都是"integer constant expression")以及 (void*)0 (我觉得(void*)0应该算是一个空指针吧,更恰当一点)等都是空指针常量(注意 (char*) 0 不叫空指针常量,只是一个空指针值).至于系统选取哪种形式作为空指针常量使用,则是实现相关的.一般的 C 系统选择 (void*)0 或者 0

NULL指针、零指针、野指针

1. 空指针.NULL指针.零指针 1.1什么是空指针常量 0.0L.'\0'.3 - 3.0 * 17 (它们都是"integer constant expression")以及 (void*)0 (我觉得(void*)0应该算是一个空指针吧,更恰当一点)等都是空指针常量(注意 (char*) 0 不叫空指针常量,只是一个空指针值).至于系统选取哪种形式作为空指针常量使用,则是实现相关的.一般的 C 系统选择 (void*)0 或者 0 的居多(也有个别的选择 0L):至于 C++