| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 437 人关注过本帖
标题:再问指针
只看楼主 加入收藏
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
结帖率:95%
收藏
已结贴  问题点数:10 回复次数:4 
再问指针
为什么指针变量使用要进行分配空间操作:如,*p=(int *)malloc(sizeof(int)).直接定义int *p不行吗?

 那下面两组程序有设么区别.第一组不是没有分配空间吗?为什么也可以正常运行。

main()
{
  int t,*p;
  t=2;
  p=&t;
  printf("%d",*p);
  getch();

}

是不是要再添加:*p=(int *)malloc(sizeof(int));

main()
{
  int t,*p;
  *p=(int *)malloc(sizeof(int));
  t=2;
  p=&t;
  printf("%d",*p);
  getch();

}
搜索更多相关主题的帖子: 指针 
2009-10-19 04:55
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
不是说指针变量没有分配空间,赋值会出错的吗?
2009-10-19 04:59
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:5 
以下是引用陈威在2009-10-19 04:55:54的发言:

为什么指针变量使用要进行分配空间操作:如,*p=(int *)malloc(sizeof(int)).直接定义int *p不行吗?

 那下面两组程序有设么区别.第一组不是没有分配空间吗?为什么也可以正常运行。
main()
{
  int t,*p;  //指针P未有初始值
  t=2;   
  p=&t;   //在这里指针已经给指针P赋于初始地址&T
  printf("%d",*p);  //所以这里可以直接使用了.
  getch();

}指针变量当然要先赋值在使用了。。。。

简单的生活
2009-10-19 07:43
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:4 
我觉得所有的变量在定义的时候就已经赋予了内存单元,内部变量一般是auto,外部为无存储类型符,指针变量也是变量,在定义的时候就已经赋予了内存,只不过没有初始化的指针要先赋值再使用。

我可好玩啦...不信你玩玩^_^
2009-10-19 08:29
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:1 
#include<stdio.h>
#include<string.h>
void insert(char *str,char *sbustr,int i)
{ char *p,*q;
  int l_str,l_sbustr;
  l_str=strlen(str);
  l_sbustr=strlen(sbustr);
  p=str+i;
  q=str+l_str;
  while(q>=p)
  {
    *(q+l_sbustr)=*q;
    q--;
  }
  for(;*sbustr!='\0';sbustr++,p++)
  {
      *p=*sbustr;
  }
  puts(str);
}
main()
{ char *str="jinsiang";
  char *sbustr="**";
  int i;
  printf("请输入一个数:");
  scanf("%d",&i);
  insert(str,sbustr,i);
}
在这个程序里有一个问题,就是在char*str="jinsiang";这出问题了,我看了别人把这修改成了个字符数组char str[10]="jinsiang";
这样编译就是对的,我想知道为什么要这样修改呢???
 
#include<stdio.h>
main()
{ char *str="jinsiang";
  puts(str);
}  
如果是这样一个程序,为什么就没有错误呢
可是刚才的程序怎么就不对呢

愿用余生致力编程
2009-10-19 11:06
快速回复:再问指针
数据加载中...
 
   



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

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