标题:[求助]
只看楼主
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
 问题点数:0 回复次数:7 
[求助]

main ()
{ int *p,i;
char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;....
}
以下程序有错,错在哪

A p和q类型不一致,不能执行*p=*q
B q 虽然指向了具体的存储单元,但该单元中没有确定的值,
所以不能执行*p=*q


下面的程序段中,for循环的执行次数为什么是6次,\018不是一个整体吗
char *s="\ta\018bc";
for ( ; *s!='\0';s++)
printf ("*");



# include <stdio.h>
void main (){

char *p ="%d,a=%d,b=%d\n";
int a=111,b=10,c;
c=a%b;
p+=3;
printf (p,c,a,b);
}
不明白为什么结果不是1 ,a=111,b=10



这两个有什么不同
char str [10], *s ="abcde",strcat (str,st);
char str [10]=" ", *s ="abcde",strcat (str,st);



为什么错
# include <stdio.h>
void main (){

char s[6];
s="abcd";
printf ("\"%s\"\n",s);
}

我觉得学了指针以后好像什么都不懂似的,总觉得指针好麻烦,有时候是这样写有时候又不能,也许是刚学把他们都搞得乱乱的,你们都有这样的经历吗。

祝各位圣诞节快乐。

搜索更多相关主题的帖子: char int main 
2005-12-25 12:55
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
得分:0 
# include <stdio.h>
void main (){

char *p ="%d,a=%d,b=%d\n";
int a=111,b=10,c;
c=a%b;
p+=3;
printf (p,c,a,b);
}
这段程序中,p+=3这句使p指向的子符串变成了"a=%d,b=%d\n"

2005-12-25 22:56
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
得分:0 
第一个是选B,ch没有具体的值,所以不能由*q引用

第二个,\018不是一个整体,\带1到3个八进制数是一个字符,8已经就不是一个八进制数了,所以\01和8是两个字符,所以就是6个

第三个楼上大哥说的清楚

第四个第一个串str初始化的时候里面全部是空字符,也就是为0的字符,而第二个串全部赋值的是空格,空格的ASC码值似乎是20多吧,这个记不清了

最后一个,字符数组绝对不能这么赋值,因为在C语言里不提供字符串这样的数据类型,所以全部是以字符数组存放的,要么就定义数组时初始化,要么一个一个字符赋值。虽然字符数组的名字代表数组的进入地址,但是不能当指针用的。

2005-12-25 23:12
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
得分:0 
char str [10], *s ="abcde",strcat (str,st);
这句,你的str数组里已经放满了,所以肯定会出错
2005-12-26 00:05
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
得分:0 
呀呀~~~没仔细看~~~当成strcpy了

2005-12-26 00:12
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
得分:0 
thank you for answering my questions.
但我想知是不是即使不同类也是可以进行赋值的

喜欢宁静的平凡生活
2005-12-26 12:17
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
得分:0 

char str [10], *s ="abcde",strcat (str,st);
这句,你的str数组里已经放满了,所以肯定会出错;
为什么这样说,str 数组里都没有放东西进去,为什么说他已经放满啦。不明


喜欢宁静的平凡生活
2005-12-26 12:31
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
得分:0 
他说的应该是第2个,放满空格的那个

2005-12-27 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-39871-1-1.html




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

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