zoukankan      html  css  js  c++  java
  • 一,彻底理解第一个C语言程序 Hello World

      对于初学者来说,第一个程序一般都是hello world,而且是照着书上一点一点敲的。所以,在初学者眼中,敲出来的第一个程序代码不过是一堆看不懂的英语。而事实上,C语言作为一门语言,是有语法的。所以这一节,我们以C语言最简单的一个程序为载体,初步了解C语言的语法,相信读者看了以后不用看书也能写出一个hello world程序。

      首先,我们先不说C语言,我们先从人类语言开始,假设我现在给你的任务不是让你用计算机输出一行hello world,而是让你找另一个人给你写一行hello world。这个任务你会怎么完成呢?

      显然,你会找个人对他说:“给我在纸上写一行hello world。”(假设他会无条件听你的话)

      好,很简单,这个任务就完成了。但是现在任务的完成对象并不是人,而是计算机,你需要按照它的语法对它说话。那么你能在敲代码的区域里打上“写一行hello world给我”吗?可以,前提是在前面打两个斜杠“//”。这两个斜杠的意思是在后面的东西是注释。计算机会忽略所有注释,因为注释是方便人阅读的。一般来说,注释默认写在被注释的语句或语段上面。

      还有一种注释方法是/*中间是要注释的内容*/

      两种注释方法的区别是,两个斜杠的注释只能管到一行的结束,而第二种注释可以自己随意选择起始和结束位置。所以在学语法的时候,注释可以忽略不计,因为注释对程序本身是没有作用的。一般来说,注释可以加在代码的任何地方,但是为了美观还是要规范写注释。下面是一个带注释的hello world程序。

    #include<stdio.h>
    int main(void)
    {
        /*下面要输出hello world*/
        printf("hello world");
        return 0;
     } 

      那么问题来了,那我直接在代码区域写

    printf("hello world");
    这样不就行了吗?然后编译,运行。会发现编译器会报错。(补充一句,C语言每句话结束都要加分号,这是语法,如果漏加会报错,不再赘述。而且,所有语法中的符号必须用英文格式输入,比如;;前者会报错)既然报错了,说明其他语句也是有用的,那么具体作用是什么?下面开始讲解。
    首先每个c程序必须有一个主函数框架。
    int main(void)
    {
    
    }

    在主函数框架里就是你要编写的内容,相当于告诉计算机:“这里面就是你要执行的命令。“

    那么return 0;这一句是干什么的呢?它的意思是让主函数正常结束。一般来说这句话都是写在最后。如果你把这句话写在printf前面,还没等输出,程序已经结束了,所以就不会有东西输出。也就是说程序的一般就是

    int main(void)
    {
    
        return 0;
    }

    所以hello world 的主程序就是

    int main(void)
    {
        printf("hello world");
        return 0;
    }

    你会发现,即使这样写完,再编译还是错的。为什么呢?有没有发现在开头的代码里,第一行还有#include<stdio.h>这句话又是干什么的呢?

    那么你有没有想过一个问题,既然计算机听不懂你说“输出一行hello world”,它凭什么就能听懂printf("hello world")?所以,相信你已经猜到这句话是什么意思了。这句话就是教会计算机听懂printf。stdio.h是头文件,它是一个函数库:标准输入输出库(standard input output的缩写)。.h是后缀名,头文件(head file)的后缀名一般都是.h。那么把stdio.h给include进来的这句话叫做声明语句。声明语句都以#开头,标准自带库文件要用尖括号。所以是#include<stdio.h>而且值得注意的是,声明语句结尾不用分号。

    因此,一个hello world 程序就很自然的出来了。

    #include<stdio.h>
    int main(void)
    {
        printf("hello world");
        return 0;
     } 

    这样就可以编译运行了。在明白了每句话的意思的基础上,读者可以自行编写一遍。

    //int main(void) 有很多不同的形式,比如int main() int main(int argc,char *argv[]) 暂时不需要知道其中的区别

  • 相关阅读:
    oracle imp导入库到指定表空间
    c3p0配置 initialPoolSize 和minPoolSize 可以设为0吗?设0有坏处吗?
    java.sql.SQLException: 关闭的连接 解决办法
    后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」
    后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息
    后盾网lavarel视频项目---自定义验证和自定义验证规则
    后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
    后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息
    后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)
    linux系统/var目录的作用
  • 原文地址:https://www.cnblogs.com/itlqs/p/4858650.html
Copyright © 2011-2022 走看看