| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3892 人关注过本帖
标题:指针变量不可以直接赋值常量这个问题是不是有点歧义!?
只看楼主 加入收藏
古丁高手
Rank: 1
来 自:地狱
等 级:新手上路
帖 子:56
专家分:8
注 册:2012-8-8
结帖率:57.14%
收藏
 问题点数:0 回复次数:8 
指针变量不可以直接赋值常量这个问题是不是有点歧义!?
int *p;
p=1000;
这种赋值是错误的,但是如果我知道p指向的目标地址就是1000,还会错吗?例如p=&a,a变量的存储地址就是1000,那我直接让p=1000,就可以不用p=&a.
是不是!
搜索更多相关主题的帖子: 存储 
2013-01-03 12:08
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
当然不行了,有种操作叫sizeof,楼主可以分别sizeof下a,1000和p看下他们的大小,一个3个字节的常量怎么放入1个字节的指针里呢?

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-03 12:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
程序代码:
#include <stdio.h>
int main(void)
{
    int *p = NULL;
    p = (int *)100;
   
    return 0;
}


gcc -Wall a.c
a.c: In function 'main':
a.c:4:7: warning: variable 'p' set but not used [-Wunused-but-set-variable]

为啥不能赋值 那

int *p = NULL;

也不行喽
2013-01-03 12:30
古丁高手
Rank: 1
来 自:地狱
等 级:新手上路
帖 子:56
专家分:8
注 册:2012-8-8
收藏
得分:0 
猫哥再详细点

不要管我是谁,我也不管你是谁!
just kiss myass!
2013-01-03 12:31
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用yaobao在2013-1-3 12:21:37的发言:

当然不行了,有种操作叫sizeof,楼主可以分别sizeof下a,1000和p看下他们的大小,一个3个字节的常量怎么放入1个字节的指针里呢?

程序代码:
#include <stdio.h>
int main(void)
{
    int *p = NULL;
    p = (int *)100;
    printf("sizeof(int *)=%d,sizeof(100)=%d\n", sizeof(int *), sizeof(100));
   
    return 0;
}


sizeof(int *)=4,sizeof(100)=4
2013-01-03 12:33
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
这个问题打一段代码编译一下就知道了 还用分析么 实践是检验真理的唯一标准
2013-01-03 12:33
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 3楼 zklhp
版主,直接教吧,我也是瞎说的,纯粹抛砖引玉啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-03 12:36
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 

#include <stdio.h>
int main(void)
{
   char a,*b;
   int c,*d;
    printf("%d,%d,%d,%d",sizeof(a),sizeof(b),sizeof(c),sizeof(d));

    return 0;
}
是我想当然了,以前一直以为指针是1个字节的,向楼主道歉。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-03 12:42
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
那版主,64位 的电脑指针是不是8个字节了啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-03 12:44
快速回复:指针变量不可以直接赋值常量这个问题是不是有点歧义!?
数据加载中...
 
   



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

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