| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:新手请教几个问题
只看楼主 加入收藏
gaoyy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-15
收藏
 问题点数:0 回复次数:3 
新手请教几个问题
C语言作业:
1  int *p=new int(100); 释放内存用delete p; 对吗,
          另C语言中有new的这个词的用法吗,我只在C++中看到有.

2  假定p所指对象的值为25,p+1所指对象的值为46;,则*p++的值为?
          是25吗?
3  假定p所指对象的值为25,p+1所指对象的值为46;,则*++p的值为?
          是46吗?
4  假定p所指对象的值为25,p+1所指对象的值为46;,则执行"*(p++);"语句后,p所指对象的值为?
          是46吗?

#include<stdio.h>


void main()
{
    int p[2]={25,46};

    printf("%d\n",*p++);

}
在VC6.0中结果为
--------------------Configuration: sss - Win32 Debug--------------------
Compiling...
sss.c
D:\Program Files\Microsoft Visual Studio\MyProjects\sss\sss.c(8) : error C2105: '++' needs l-value
Error executing cl.exe.

sss.exe - 1 error(s), 0 warning(s)
请问怎么有错误呢?
搜索更多相关主题的帖子: 内存 include C语言 
2008-12-03 21:15
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
int *p=new int(100);
这个错了吧??
而且int是关键字,不能用来命名的。。

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-12-03 21:30
gaoyy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-15
收藏
得分:0 
有人这么讲对吗?
++和*优先级相同,但结合方向由右向左。C语言中只有3种操作符的优先级为从右向左:一元操作符(!,-,++,--,+,-,(type),*,&,sizeof),条件操作符(?:)和赋值操作符(=,+=,/=等等)
所以*p++等同于*(p++).
2008-12-03 21:30
gaoyy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-15
收藏
得分:0 
以下是引用zqy110007在2008-12-3 21:30的发言:

int *p=new int(100);
这个错了吧??
而且int是关键字,不能用来命名的。。

这是我书上的作业,我检查了没抄错,这种用法是没对样
2008-12-03 21:33
快速回复:新手请教几个问题
数据加载中...
 
   



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

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