| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1923 人关注过本帖
标题:照课本写的代码和结果不一样
只看楼主 加入收藏
小白神奇
Rank: 1
等 级:新手上路
帖 子:80
专家分:7
注 册:2018-10-25
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:3 
照课本写的代码和结果不一样
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 课本 代码 结果 
2018-12-12 14:21
小白神奇
Rank: 1
等 级:新手上路
帖 子:80
专家分:7
注 册:2018-10-25
收藏
得分:0 
#include <conio.h>
#include <stdio.h>
void main(){

    int a=6, *p;
    p=&a;
    printf("a=%d\n * p=%d\n",a,*p);
    printf("&a=%d\np=%d\n",&a,p);
    printf("&p=%d\n",&p);
    getch();



}


这是我写的代码,下面还有几个问题
1.请前辈们给我描述一下跑代码的步骤
2.getch的作用在百度中(会等待你按下任意键,再继续执行下面的语句),但是我用的是直接就是现实结果啊
3.&a,p,&p,是什么啊
2018-12-12 14:23
Ametrin
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:26
注 册:2018-8-28
收藏
得分:10 
通俗的讲"&"是取地址符,“a”是你的变量声明,当你声明这个变量的时候,系统会给这个变量分配一个内存,“&a”就是“a”的地址。
每个电脑上面分配的内存都是不一样的,所以书上“&a”的值和你运行“&a”的值肯定也是不一样的。
建议先看看基础
2018-12-12 19:41
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:10 
1、程序首先定义了一个整形变量,和一个整形指针变量。然后,将a的地址赋值给了指针变量。然后输出语句输出了变量a的值。两次,用不同的表示方法。其中*p也就是变量a,不过是用指针表示的。
然后输出了变量a在内存中的地址,也就是内存单元的编号。也是用两种方法实现的,一个是用取地址符,一个是用指针的方式。
再然后就是输出了指针变量在内存中的地址,
2、getch()这个函数你可以理解为暂停,你不按键盘任意字符,程序就停在这。
3、&a,是a在内存中的地址,这个a前面的取地址符你应该早就学到了,现在来问就表示你前面学的很不认真。p是你定义的指针变量,a的地址已经赋值给它了,所以现在他也是a的内存地址,&p同样是用到了取地址符,这表示是指针变量p的内存地址。
2018-12-12 20:28
快速回复:照课本写的代码和结果不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017779 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved