| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1293 人关注过本帖
标题:求助 关于指针和数组的问题!
取消只看楼主 加入收藏
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
 问题点数:0 回复次数:8 
求助 关于指针和数组的问题!
高手~指点下小弟~~


我有一个数据 str[250]= "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
还有一个指针 *per1=str ;

请问指针*per1能装下这么多的数吗?

还有 谁能详细的讲讲指针和数组的区别~那里应该用指针那里应该用数组~

我现在对指针和数组很混~
搜索更多相关主题的帖子: 指针 
2006-07-04 17:40
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

有没人可以总结以下啊`


2006-07-05 09:02
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

没人啊~~

自己顶下


2006-07-05 09:28
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
以下是引用baidu在2006-7-5 9:39:53的发言:
请问指针*per1能装下这么多的数吗?


房子是内存,房子里的人,物是数据.这个房子的名字叫 BAIDU大厦 . BAIDU大厦就是str
数组名.而per1是什么?per1是 星光大道100号 .星光大道100号就是BAIDU大厦门牌编号
所以,per1只需装进"星光大道100号"即可,而不是装进人,物

谢谢BAIDU ~!这样讲的很形象!~

但是我还一点疑惑!~ 你的意思是 指针只是用来指向地址的~

#include <string.h>
#include <stdio.h>

int main( )
{
char str[] = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" ;
char *per1 ;

per1 = str ;

}

我这样写可以吗??规范吗? 这样写是把数组里的数据存到per1指针地址里面吗?


2006-07-05 10:00
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

那你帮我看看这个程序 那里有问题`~!~

#include <string.h>
#include <stdio.h>
char * substring(char *str1,char *str2,int a,int b) ;

int main( )
{
char str[] = "a=01234567890;b=1234567890;c=12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" ;
char *per1 ;
char *per2 ;

per1 = str ;

substring(per2,per1,3,10) ;

}

/* 这个函数功能是 取某一段字符串的作用~ */
char * substring(char *str1,char *str2,int a,int b)
{
char *ptr1=str1;
int i ;
for(i=a;i<a+b;i++)
{
*ptr1=*(str2+i-1);
ptr1++ ;
}
*ptr1=0;
return str1;
}

[此贴子已经被作者于2006-7-5 10:18:30编辑过]


2006-07-05 10:17
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
以下是引用baidu在2006-7-5 10:13:45的发言:
你学过其它语言?
俺喜欢与知道自己在问什么的人交流

学过的语言`

SQL ,VB ,C++ ;比较熟悉 SQL 语言~


2006-07-05 10:21
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
以下是引用baidu在2006-7-5 10:21:32的发言:
char *per2 ;//必须给他内存空间,你没分配内存给他

你的意思是还要给指针分配内存`~


2006-07-05 10:22
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
以下是引用baidu在2006-7-5 10:25:22的发言:
char per2[80];这样或动态分配

char per2[80] ; 是数组吧~


2006-07-05 10:29
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
以下是引用baidu在2006-7-5 10:40:59的发言:

对,你可以认为per2[]也是一种特殊的指针,只不过其内存分配是在编译时完成,即程序一运行就得为其分配好内存空间.
第二,per2不能改变指向

如果是char *per2;那么,你记住,per2它只有一个int大小,甚至你完全可以把它看成一个int;

如果你想per2指向一个字符串(注意,不是赋给它一个字符串),那么你需要做的是必须先有一些存贮字符串的空间(这个就叫动态分配内存),然后,再把这些空间的首址值赋给per2,这样你才可以操作

终于是搞明白拉`~谢谢你们了~~谢谢各位朋友的帮助~~万分感谢你们啊`~


2006-07-05 10:45
快速回复:求助 关于指针和数组的问题!
数据加载中...
 
   



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

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