C语言细节问题

拜拜、爱过 提交于 2020-01-28 17:32:05

c#### <stdio.h>标准输入输出文件

目标文件,可执行文件,启动代码,编译器,连接器。

main函数是C程序调用的第一个函数

可以用小写,大写,数字,字母,下划线命名,但名称的第一个字符必须是字符或下划线,不能是数字。 C99和C11允许使用更长的表示符名,但编译器只识别前63个字符 。C99和C11还支持扩展字符 例如三字符(??=)等价为 # C99中(%:)等价为 # 需要在编译器激活相关选项才能使用

C99之前的标准要求变量必须在块的顶部,其他语句不能在变量的前面。C99和C11遵循C++的惯例,可以把声明放在块中的任意位置。

return 语句再main()函数中如果不加,在执行到 } 时会自动返回0 ,为了代码规范,最好加上。main(void),有的编译器支持()的写法,但最好写上(void)。

#include <stdio.h>
void f(void);
int main(void)
{
    printf("hello world\n");
    f();
    return 0;
}
void f(void)
{
    printf("YES");
}
//这种写法也可以调用函数

数据和C

float ,double long double 表示小数类型 . bool表示布尔值(false和tule) complex和imaginary分别表示复数和虚数。

2.0e7表示2.0的7此方。2.0e-7表示2.0的负七次方

对于一些算数运算,浮点数损失的更多。计算机不能精确的表示一个浮点数,通常浮点数值是实际数的近似值,7.0可能被存储为6.99999,过去浮点数运算比较慢,现在许多CPU包含浮点处理器,缩小了速度上的差距

 printf("%d minus %d is %d\n",ten);

后面两个%d没有声明,编译器不会报错,与printf函数的设计有关。

int x=100;
printf("a=%d b=%o c=%x\n",x,x,x);
//结果为 a=100,b=144,c=64

要想打印出八进制和十六进制的O和OX前缀,形式为%#o和%#X

#include<stdio.h>

int main(void)
{
    long long a,b,s;
    while(scanf("%llx%llx",&a,&b)!=EOF)
    {
        s=a+b;
        if(s<0)
        {
            s=-s;
            printf("-%llx\n",s);
        }
        else printf("%llx\n",s);
    }
    return 0;
}
//这段代码输入十六进制,输出十六进制,注意注意,不能输出负数,要自己进行判断,打印负号
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!