| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:一个指针的疑问
只看楼主 加入收藏
xiangy86
Rank: 1
等 级:新手上路
帖 子:15
专家分:1
注 册:2009-9-14
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
一个指针的疑问
#include<stdio.h>
int fun(char s[])
{
    int n=0;
    while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}
    return(n);
}
main()
{
    char s[10]={'6','1','*','4','*','9','*','0','*'};
    printf("%d\n",fun(s));
}
这个程序中char s【】表示的是一个数组,那s应该是一个常量,为什么能做s++运算?
搜索更多相关主题的帖子: 指针 疑问 
2010-03-26 16:05
llooppzhang
Rank: 7Rank: 7Rank: 7
来 自:江苏
等 级:黑侠
威 望:5
帖 子:308
专家分:518
注 册:2009-10-18
收藏
得分:0 
s是数组的头地址指针,可以有++的运算的
2010-03-26 16:11
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:20 
函数里的形参是实参的一个副本,它只是与它的值相等而已,它不是它

在int fun(char s[])里,虽然这样表示s[],但其实它是一个指针,它与char *s是等效的,这样子写是为了让自己知道我在这里一般是要传递一个数组的
2010-03-26 16:14
xiangy86
Rank: 1
等 级:新手上路
帖 子:15
专家分:1
注 册:2009-9-14
收藏
得分:0 
我看的书上写的很清楚啊,数组的数组名表示的是数组的首地址,是一个指针常量,不能做++运算
2010-03-26 16:16
xiangy86
Rank: 1
等 级:新手上路
帖 子:15
专家分:1
注 册:2009-9-14
收藏
得分:0 
知道了,谢谢
2010-03-26 16:17
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
收藏
得分:0 
函数里的参数int fun(char s[]) 和 char s[10],只是名称一样,实质不一样。


2010-03-26 16:19
wmm09
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-26
收藏
得分:0 
貌似不对吧,常量怎么参加运算呢
2010-03-26 16:46
hkfly
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-26
收藏
得分:0 
这个s[10]相当于一个字符串s[10]={"61*4*9*0*\0"}
是一种特殊的数组
但数组的S不能用S++
字符串是可以用的
2010-03-26 17:36
快速回复:一个指针的疑问
数据加载中...
 
   



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

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