这两天敲代码碰到了一个这样的问题

代码如下:

 #include <stdio.h>
#include <stdlib.h>
int main()
{
int num1 = ; int* p=&num1;
*p = ; printf("%p\n", &num1);
printf("%d\n", num1);
system("pause");
return ;
}

运行结果如下:

第二个代码

 #include <stdio.h>
#include <stdlib.h>
int main()
{
int num1 = ; int* p = &num1;
p = ; printf("%p\n", &num1);
printf("%d\n", num1);
system("pause");
return ;
}

运行结果如下:

通过比较第一个程序与第二个程序差别在于,第一个修改的是*p=20,第二个修改的是p=20,最后打印出来的num1的结果带*p的为20,带p的为10。

这是因为通过*p改变了&num1地址里的变量,而修改p则对地址里的变量的值没有影响。


另外,指针变量长度的计算:

 #include <stdio.h>
#include <stdlib.h>
int main(){
printf("%d\n", sizeof(float *));
return ;
}

运行结果如下:

在32为操作系统下,指针变量(char,float,double,int,long)的长度为都4个字节。

64位操作系统下,这些指针变量长度位8个字节。

指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?的更多相关文章

  1. 栈 堆 stack heap 堆内存 栈内存 内存分配中的堆和栈 掌握堆内存的权柄就是返回的指针 栈是面向线程的而堆是面向进程的。 new/delete and malloc/ free 指针与内存模型

    小结: 1.栈内存 为什么快? Due to this nature, the process of storing and retrieving data from the stack is ver ...

  2. C语言定义结构体指针数组并初始化;里面全是结构体的地址

    #include <stdio.h> #include <string.h> struct tells;//声明结构体 struct info { char *infos; } ...

  3. (Go)09.指针赋值修改示例

      答案: 1 package main 2 import ( 3 "fmt" 4 ) 5 6 7 func modify(p *int) { 8 fmt.Println(p) 9 ...

  4. Hexo折腾记--小白修改新主题

    UPDATE 2019.5.28 不好意思我又换了个新主题ARIA啦...这回没有个人定制了 前言 如果您曾经来过我的博客,就会发现我的个人博客(https://rye-catcher.github. ...

  5. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  6. 不同类型的指针+1之后增加的大小不同(a,&a的地址是一样的,但意思不一样)

    main() { ]={,,,,}; ); printf(),*(ptr-)); } *(a+1)就是a[1],*(ptr-1)就是a[4], 执行结果是2, 5.&a+1不是首地址+1,系统 ...

  7. 修改arcgis server默认js和css连接地址

    当使用ArcGIS Server 10.1发布了一个地图服务之后,在ArcGIS Server 10.1的机器上使用浏览器进入http://localhost:6080/arcgis/rest/ser ...

  8. 派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good

    大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree ...

  9. 【漏洞分析】两个例子-数组溢出修改返回函数与strcpy覆盖周边内存地址

    修改返回函数 return 0 下面的程序的运行流程为main()函数调用了Magic()函数,通常执行完Magic()函数后会调用return 0 的地址, 但是在执行Magic()函数中时,数组下 ...

随机推荐

  1. VS断点不生效

    工程属性页中“配置属性”->“C/C++”->“常规”->“调试信息格式”,选择“用于“编辑并继承”的程序数据库(/ZI)”. 在“配置属性”->“链接器”->“调试”- ...

  2. 二阶SQL注入理解与体会

    一:SQL注入分类 SQL注入一般分为两类:一阶SQL注入(普通SQL注入),二阶SQL注入 二:二者进行比较 0x01:一阶SQL注入: 1:一阶SQL注入发生在一个HTTP请求和响应中,对系统的攻 ...

  3. 设计模式:备忘录(Memento)模式

    设计模式:备忘录(Memento)模式 一.前言   备忘录模式用于保存和恢复对象的状态,相信大家看过我前面的拙作就会想到原型模式也能保存一个对象在某一个时刻的状态,那么两者有何不同的呢?原型模式保存 ...

  4. selenium 滑动解锁(drag_and_drop_by_offset)

    from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from ...

  5. Beta版本 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。

    Beta版本 软件的测试版本,经常在各类著名软件中的前期发布版本的后缀中可见,包括大名鼎鼎的windows系统,这个阶段的版本一直加入一些新的功能. 软件测试可分为alpha测试.beta测试和联合测 ...

  6. Python之条件判断和循环(入门4)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407755.html 本文出自:[Edwin博客园] Python之条件判断和循环 1. Python之if ...

  7. selenium+java项目实战---百度输入框

    最近对java+selenium+testng+maven 做一个小项目的总结,并对工作中的框架在做一些小总结,大概目录为: 1.项目实战--百度登录输入框 2.项目的二次封装 3.框架分层,及po模 ...

  8. postgresql+postgis+pgrouting实现最短路径查询(3)--流程图

    项目结束,做一个项目的总结汇报,就把最短路径查询的实现流程图画了一下,现在补出来:

  9. Java虚拟机5:常用JVM命令参数

    这里汇总一些平时用到的.看到的一些虚拟机参数: (1)-Xms20M 表示设置堆容量的最小值为20M,必须以M为单位 (2)-Xmx20M 表示设置堆容量的最大值为20M,必须以M为单位.将-Xmx和 ...

  10. java里面list是引用的好例子

    java里面的赋值和引用是不同的,以后要详细总结一下! 看一个例子: public static void main(String[] args) { List<String> list ...