打印

厚着脸皮问问C语言的初级问题

[复制链接]
1795|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beckham|  楼主 | 2009-7-23 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、stdio.h中的stdio是不是standard input output 的缩写?
2、#include <stdio.h>与#include “stdio.h"有什么区别?
3、语句“#include "stdio.h";”有什么毛病?注意h后有个分号“;”,编译时没错,就是瞅着不舒服。
4、字符串“abc d”和“abcd”的长度分别是多少?就是在内存中占的字节数。

相关帖子

沙发
iC921| | 2009-7-23 20:43 | 只看该作者

帮你顶一下

使用特权

评论回复
板凳
gbchenyg| | 2009-7-24 10:36 | 只看该作者

再顶。

使用特权

评论回复
地板
戒指320| | 2009-7-25 21:22 | 只看该作者

2、#include <stdio.h>与#include “stdio.h"有什么区别?
区别就是查找的时候路径不一样,我记得书上有讲过。

3、语句“#include "stdio.h";”有什么毛病?注意h后有个分号“;”,编译时没错,就是瞅着不舒服。
include "stdio.h";”
 这个后面是不需要加 ;的

使用特权

评论回复
5
三块石头| | 2009-7-25 22:24 | 只看该作者

我来试试回答

1. 个人理解也认为是standard input & output
2. 头文件名加尖括号的表示编译时搜索路径在库文件或工程设定的路径中,加引号的表示先搜索工程或源文件所在文件夹路径,如果没有再到库路径或工程设定路径中去找。
3. 相当于#include语句后跟了一个空语句;
4. 编程:

#include <string.h>
int main (void)
{
    printf("Size 1 = %d. ", strlen("abc d"));
    printf("Size 2 = %d. ", strlen("abcd"));

    getch();
    return  0;
}
输出结果为5和3. (WinTC 1.91)

使用特权

评论回复
6
ecook| | 2009-7-25 23:34 | 只看该作者

楼上

请问什么是工程路径?它与“工程或源文件所在文件夹路径”有什么区别?谢谢

使用特权

评论回复
7
scan| | 2009-7-27 11:41 | 只看该作者

第二个问题

用<>尖括号时,系统到放C库函数头文件所在的目录中寻找需要包含的文件。用""双撇号系统先在用户当前目录中寻找要包含的文件,找不到再按标准方式查找。
比如说为你的工程建了一个文件件。然后自己编了个头文件。那就应该用""号,因为只有它才会搜索你的工程文件夹。如果你要包含的头文件是系统自带的,比如说stdio.h,那用<>就可以了。因为它直接就到你安装编译器的文件夹下的C库函数头文件的文件夹下去找。略过你的工程文件夹

使用特权

评论回复
8
箫笑| | 2009-7-28 09:33 | 只看该作者

第四题

如果你是问占的内存大小,那应该是这样:

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

int main(void)
{
    char array1[] = "abc d";
    char array2[] = "abcd";
    printf("Size1=%d ", sizeof(array1)/sizeof(array1[0]));
    printf("Size2=%d", sizeof(array2)/sizeof(array2[0]));
    
    while(1);
    
    }

size1 = 6
size2 = 6

使用特权

评论回复
9
beckham|  楼主 | 2009-7-28 17:03 | 只看该作者

总结

若是问字符个数,前者应该是5个,换行符 也是一个字符,后者仅3个,abc,用printf输出遇到就停止了,所以d并不输出显示。
若问占的存储单元个数,两者都占6字节。

使用特权

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

本版积分规则

81

主题

238

帖子

1

粉丝