我想学ruby以后开发网站,但ruby是高级语言,隐藏了许多底层的东西,因此先熟悉c语言

首先c程序的文件名是以.c结尾的

c程序的格式:

  第一行#include<stdio.h>

    #是一个预处理标准,用来对文本进行预处理操作,表示该行代码要最先进行处理,在编译代码之前运行

    include是一个指令表示将<>中的文件读入

    stdio.h表示标准输入输出头文件(头文件就好像一本书的目录,读者通过目录可以方便的查

阅到需要的内容,stdio.h声明了标准输入输出函数,假如要用到标准输入输出函数时就要添加此头

文件

    

第一个c语言程序:  

#include<stdio.h>
int main()
{
  printf("I like c language");
  return 0;
}

第一行的作用是编译器编译之前将头文件stdio.h中的所有内容读到当前程序的第一行,由于stdio.h声明了所有输入输出函数,因此下面就直接可以调用printf函数了

main() 代表一个函数,翻译成中文就是主函数,在每一个c程序中首先编译的都会是主函数,()是固定格式,{}也是固定格式,其中包含的部分叫做函数块或者函数体

每个程序中都需要注明返回的类型,此处就是int,就是程序执行完成后要向操作系统返回一个整数

mian函数与其他函数有着本质的区别:一般函数都是由其他函数调用或者激活,比如printf函数就

是由mian函数激活,但main函数是在程序开始时自动执行

printf是print format的缩写形式,I like c language是main函数传递给printf函数的信息,printf函数接受到此信息后将此信息输出到屏幕上

return 0 表示mian函数向操作系统返回一个0值,一般函数执行完成后都会返回一个执行状态结果,0表示正常,非0表示异常

c语言中的注释:

  //  单行注释

  /*....*/  多行注释

语句结束符  ;  只要行中包含了;就代表语句结束了  例如 ;   语句中的空格一般忽略不计

例如: x=a+b; 或者 x = a  +  b; 都是一样的,建议使用第一种,意思就是将a+b的值赋值给x

#include<stdio.h>
int main()
{
  {
    printf("I like c language");
    printf("I like c language");
    return 0;
  }
}

{}中包含的部分代表的就是一个块,外面的{}包含的是函数块,里面{}的块中包含了多条语句(两条printf语句),精确地说是一条复合语句

表达式:x=c=a+b   意思就是将a+b的值赋值给c然后赋值给x

#include<stdio.h>
int main()
{
  int a=1,b=2,c=3,x=0;
  x=c=a+b;

    printf("%d",x); 
  return 0;
}

%d 代表输出的是一个整数,对应着后面的x,执行此程序得到3的结果

运算符:  

#include<stdio.h>
int main()
{
  printf("%d",5%2);
  return 0;
}

5%2 代表取模,就是5除以2取它的余数,将这个值放入前面的“”中输出

运算优先级:

  printf ("%d",1+1*2+3);

上面的运算顺序:1*2+1+3,

  printf("%d",(1+1)*(2+3));

上面的运算顺序:(1+1)的值乘以(2+3)的值,跟做小学运算一样

= 在c语言中是赋值运算符

#include<stdio.h>
int main()
{
  int x=0;
  x+=1;
  printf("%d",x);
  return 0;
}

x+=1  表示将x的值加1,然后再将此值赋值给x, 相反的是x-=1

类似的还有:x*=2, x/=2,x%=2,x%=1+2 (先求1+2的值)

自加:x++ 将x的值加1

自减:x--  将x的值减1

#include<stdio.h>
int main()
{
  int x=2;
  printf("%d",x--);
  return 0;
}

  上面的程序会先将x的值输出至屏幕,然后再减1,如果要取得减1后的结果可使用下面的写法

#include<stdio.h>
int main()
{
  int x=2;
  printf("%d\n",x--);
  printf("%d\n",x);

  return 0;

}

\n代表换行

上面的程序也可写成这样:

#include<stdio.h>
int main()
{
  int x=2;

  x--;
  printf("%d",x);
  return 0;
}

说了这么多感觉有点不对,我怎么执行上面这些程序文件的?我也是这么想的

我是在linux系统中,使用vim编辑文件,例如: vim 1.c   gcc程序编译文件     编译命令:gcc 1.c,会出现一个a.out的文件   执行此文件:./a.out

也可以使用gcc 1.c -o hello  自定义文件名

步入C编程的第一天的更多相关文章

  1. UE4蓝图编程的第一步

    认识UE4蓝图中颜色与变量类型: UE4中各个颜色对应着不同的变量,连接点和连线的颜色都在表示此处是什么类型的变量.对于初学者来说一开始看到那么多连接点, 可能会很茫然,搞不清还怎么连,如果知道了颜色 ...

  2. 为什么qt成为c++界面编程的第一选择

    为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...

  3. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  4. 20165205 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165205 2017-2018-2<Java程序设计>结对编程一 第一周总结 需求分析 对输入的算式进行计算,要求满足一下条件: 支持整数运算,如2+5,47+7865. 支持多运算 ...

  5. Rx编程的第一步是将native对象转换为monad对象

    Rx编程的第一步是将native对象转换为monad对象 将基础类型转换为高阶类型,以便使用函数式编程的特性.

  6. 王译潇20162314 实验报告三plus结对编程四则运算第一阶段

    北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162314 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年5月12号 实验密级: 非 ...

  7. 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  8. 为什么 qt 成为 c++ 界面编程的第一选择?

    为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...

  9. 关于delphi XE7中的动态数组和并行编程(第一部分)

    本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...

随机推荐

  1. linux jar 命令使用

    原文链接:http://blog.chinaunix.net/uid-692788-id-2681136.html JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是 ...

  2. Android NDK 环境配置

    1. 下载NDK 官方链接地址: http://developer.android.com/tools/sdk/ndk/index.html 下载下来的应该是这个东西(以后可能会有更新,但步骤变动不会 ...

  3. 牛人写的facebook优化php来龙去脉

    背景 HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快9倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以 ...

  4. dubbo开发者指南

    开发者指南 参与 流程 任务 版本管理 源码构建 框架设计 整体设计 模块分包 依赖关系 调用链 暴露服务时序 引用服务时序 领域模型 基本原则 扩展点加载 扩展点配置 扩展点自动包装 扩展点自动装配 ...

  5. Odoo event

    使用流程 建立活动 发布到网站 在线销售 订单确认,付款确认 注册.出席     建立活动         设置门票         确认并发布到网站     进入编辑模式,即可在线编辑活动     ...

  6. String,StringBuilder性能对照

    import java.util.Date; import java.util.UUID; /**  * 測试String,StringBuilder性能,推断什么时候改用String,什么时候该用S ...

  7. ElasticSearchserver操作命令

    在win7环境,进入elasticsearch安装文件夹的bin文件夹: 1. elasticsearch.bat 就能够启动elasticsearch了.执行这个插件的优点是:elasticsear ...

  8. Android gdb so

    gdb debug an android application 1.gdb 要有gdbserver 一般模拟器默认装有gdbserver,如2.3.3的模拟器,看一下有没有: D:\Develope ...

  9. # kubernetes调度之nodeName与NodeSelector

    系列目录 Kubernetes的调度有简单,有复杂,指定NodeName和使用NodeSelector调度是最简单的,可以将Pod调度到期望的节点上. 本文主要介绍kubernetes调度框架中的No ...

  10. 用callgraph生成的两张函数调用关系图

    参考这里,感觉很Cool吧. Linux-0.11函数调用关系图: QEMU函数调用关系图: