打印

近几天学习C语言的困惑,请指教!

[复制链接]
1551|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
erkin|  楼主 | 2007-8-25 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
main()
{
 char C[15];
 scanf("%s",C);
 printf("%s  ",C);
 while (1);
}
当我输入China"空格"Foot的时候,Foot就显示不出来,我不知道为何!
编译环境为VC6.0,scanf,printf的函数原型俺也看不到,请高手来指教吧.
和"空格"代表的是一样的意思么?

相关帖子

沙发
erkin|  楼主 | 2007-8-26 11:25 | 只看该作者

在贴一个俺搞不懂的问题

#include <stdio.h>
#define uchar unsigned char

void func(char str[100])
{
printf("%d  ",sizeof(str));/*100   4*/
}

void main()
{
char str[ ]="Hello";
char *p=str;
int n=10;

printf("%d  ",sizeof(char));/*1  1*/ 
printf("%d  ",sizeof(int)); /*2  4*/
printf("%d  ",sizeof(long));/*4  4*/
printf("%d  ",sizeof(float));/*4  4*/

printf("%d  ",sizeof(str));/*5   6*/
printf("%d  ",sizeof(p));/*2   4*/
printf("%d  ",sizeof(n));/*2   4*/
func(str);
while (1); 
}
其中/*4  4*/,前边的是我合计的结果,后边是实际结果.有几个地方尤其搞不懂.
例如printf("%d  ",sizeof(int)); /*2  4*/,结果应该是2呀,为什么得出的是4呢?
sizeof是求数据类型等的字节数运算符,那么str[]的字节数应不应该算上呢?
请求指教.
编译环境为VC++6.0

使用特权

评论回复
板凳
erkin|  楼主 | 2007-8-27 08:33 | 只看该作者

up

up!

使用特权

评论回复
地板
computer00| | 2007-8-27 09:06 | 只看该作者

晕...

void func(char str[100])
{
printf("%d  ",sizeof(str));/*100   4*/
//这里str是一个指针,在X86上就是4
}

void main()
{
char str[ ]="Hello";
char *p=str;
int n=10;

printf("%d  ",sizeof(char));/*1  1*/ 
printf("%d  ",sizeof(int)); /*2  4*/
//在X86上,是32位的处理器,所以int就是32位的,4字节,short int才是16位
printf("%d  ",sizeof(long));/*4  4*/
printf("%d  ",sizeof(float));/*4  4*/

printf("%d  ",sizeof(str));/*5   6*/
//背后的结束符当然要算,不然它存哪?
printf("%d  ",sizeof(p));/*2   4*/
//同样,p是指针,当然是4字节
printf("%d  ",sizeof(n));/*2   4*/
//int是32位的

func(str);
while (1); 
}

使用特权

评论回复
5
erkin|  楼主 | 2007-8-27 11:07 | 只看该作者

re

谢谢COMPUTER的解释,明白了。
那么第一个问题怎么解释呢?

使用特权

评论回复
6
computer00| | 2007-8-28 02:07 | 只看该作者

scanf和printf同时使用时好象有时就会出问题

不要用scanf,换个getchar什么的试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

147

帖子

0

粉丝