步入C编程的第一天
我想学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编程的第一天的更多相关文章
- UE4蓝图编程的第一步
认识UE4蓝图中颜色与变量类型: UE4中各个颜色对应着不同的变量,连接点和连线的颜色都在表示此处是什么类型的变量.对于初学者来说一开始看到那么多连接点, 可能会很茫然,搞不清还怎么连,如果知道了颜色 ...
- 为什么qt成为c++界面编程的第一选择
为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...
- 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- 20165205 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165205 2017-2018-2<Java程序设计>结对编程一 第一周总结 需求分析 对输入的算式进行计算,要求满足一下条件: 支持整数运算,如2+5,47+7865. 支持多运算 ...
- Rx编程的第一步是将native对象转换为monad对象
Rx编程的第一步是将native对象转换为monad对象 将基础类型转换为高阶类型,以便使用函数式编程的特性.
- 王译潇20162314 实验报告三plus结对编程四则运算第一阶段
北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162314 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年5月12号 实验密级: 非 ...
- 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- 为什么 qt 成为 c++ 界面编程的第一选择?
为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...
- 关于delphi XE7中的动态数组和并行编程(第一部分)
本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...
随机推荐
- Java并发编程实战 读书笔记(一)
最近在看多线程经典书籍Java并发变成实战,很多概念有疑惑,虽然工作中很少用到多线程,但觉得还是自己太弱了.加油.记一些随笔.下面简单介绍一下线程. 一 线程与进程 进程与线程的解释 个人觉 ...
- jsonp _____跨域请求实现
请求如下: $.ajax({ type: "GET", async:false, url: "http://127.0.0.1:8080/Cross-site-reque ...
- SilverLight:基础控件使用(4)-日期显示和选择类控件
ylbtech-SilverLight-Basic-Control:基础控件使用(4)-日期显示和选择类控件 Calendar,DatePicker 1.A,返回顶部 Calendar控件(日期控件) ...
- VS中的 MD/MT设置 【转】
VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以 说是Windows平台上各种IDE环境中的翘楚了.很多别的开发工具已经难望其项背了,如今VS2010也已经面市很 ...
- 线性回归,logistic回归分类
学习过程 下面是一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型.就如同上面的线性 ...
- iOS7系统中的坑——UITableViewCellScrollView
今天开完一系列例会后,终于迎来放假的时候了,本来中午就要下班走的,想着火车票现在还很早,也就不急着走,闲着无聊,想着之前要写的内容,索性写一篇聊以打发时光,也希望对其他人有所帮助吧. 现在iOS的最新 ...
- Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关]
1. 设定屏幕方向 当指定了屏幕的方向后(非SCREEN_ORIENTATION_UNSPECIFIED),屏幕就不会自己主动的旋转了 有2中方式控制屏幕方向: 1.1 改动AndroidManife ...
- Web知识点收集
1.微信屏蔽浏览器,打开办法: 如果微信webapp屏蔽了浏览器打开,通常是通过判断代理类型来做到的. 解决办法:进入浏览器开发者模式,修改浏览器代理为: Mozilla/5.0 (iPhone; C ...
- python(29)- 面向对象练习Ⅲ
题目: 基于授权定制自己的列表类型,要求定制的自己的__init__方法, 定制自己的append:只能向列表加入字符串类型的值 定制显示列表中间那个值的属性(提示:property) ...
- redirect_uri 參数错误的解决的方法
我通过java代码去获得用户的openid,一直报redirect_uri. 我页面代码的链接为: https://open.weixin.qq.com/connect/oauth2/authoriz ...