C语言第一节 C语言程序与开发工具

  1. 开发工具的选择

  2. 可以用来写代码的工具:记事本、UltraEdit、Vim、Xcode
  3. 选择Xcode的原因:苹果官方提供的开发利器、简化开发过程、有高亮显示功能
  4. 使用Xcode新建一个C程序的源代码文件(拓展名为.c或者.C)
  • 打开Xcode

  • 新建文件

  • 选择文件的类型

  • 输入文件名和选择文件的存放目录

  • 新建完毕

  • 删掉文件里自动生成的所有内容,从零开始

 

  1. 代码的编写

  1. 程序结构

    1. 先C程序的结构:由函数组成
  • 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为"函数"。所以,你可以说C语言程序是由函数构成的

  1. 函数的基本概念
  • 函数名:一个程序中由无数个函数组成,每个函数都有自己的名称
  • 调用(执行)函数:根据函数名就可以调用对应的函数,执行相应的功能
  1. C程序的入口
  • C程序的入口是一个名字叫做main的函数,简称main函数
  • 不管整个程序中有多少个函数,都是先执行main函数

 

  1. 编写程序

    1. 编写main函数(大括号{ }中的内容是函数体)

int main()

{

return 0;

}

  1. 编写多个函数,并且进行调用

int test()

{

return 0;

}

 

int main()

{

test();

return 0;

}

 

  1. 使用printf函数输出内容到屏幕上

#include <stdio.h>

int main()

{

printf("Hello World!");

return 0;

}

 

  1. 编译

  2. 什么是编译:将C源程序翻译成计算机能识别的0和1
  3. 使用什么编译器:Xcode3使用GCC,Xcode4使用LLVM编译器(前端用clang)
  4. 如何使用clang编译器编译程序?
  • 在终端中输入:cc –c 文件名.c
  • 编译成功,会生成.o目标文件
  1. 编译器的错误和警告功能
  • 如果代码有语法问题,编译器会直接报错。并指出错误的个数和具体行号。
  • 只要有1个错误,程序就不能编译成功,也不会生成.o文件
  • 警告信息只是编译器的一些建议,并不影响编译通过

 

  1. 链接

  2. 链接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件
  3. 由链接器完成,clang编译器里面已经包含了链接指令
  • 在终端中输入:cc 文件名.o
  • 链接成功,会生成a.out可执行文件

 

  1. 运行

  2. 两种运行方式
  • 直接双击打开a.out文件
  • 终端中使用 ./a.out 指令
  1. 修改文件内容之后,一定要重新编译、链接,再运行
  2. \n的作用:回车换行

 

  1. 其他clang指令

  • 修改可执行文件名称:cc xxx.o -o 文件名
  • 一起编译、链接:cc xxx.c

 

  1. 初学者常见错误

  • 不写分号、用了中文分号
  • 字符串少了双引号、或者用了单引号,双引号里面又有双引号
  • 代码没有写在main函数内部、return之前
  • 文件拓展名不是.c或者.C,比如.txt
  • 用绝对路径编译文件,注意目标文件生成的地方

 

  1. 总结

  2. 整个程序的运行过程

  1. 总结常见文件的拓展名
  • .c是C语言源文件,在编写代码的时候创建
  • .o是目标文件,在编译成功的时候产生
  • .out是可执行文件,在链接成功的时候产生
  1. 总结clang指令
  • 编译:cc –c xxx.c
  • 链接:cc xxx.o
  • 编译、链接:cc xxx.c
  • 运行可执行文件:./a.out
  1. 开发中会遇到哪些错误?如何解决?
  • 语法错误,可以通过编译器的报错信息解决
  • 逻辑错误,需要耐心调试程序
  1. 学习建议
  • 学编程并不是学英文
  • 程序的可读性
  • 初学者不要过于寻根问底

 

  1. 习题

用2种不同的代码方式输出下面的图案

************

** itcast **

************

 

 

内容来源:传智播客李明杰老师授课内容

转载于:https://www.cnblogs.com/codersay/p/4301336.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

列表视图

列表视图 分类&#xff1a; SharePoint入门2014-10-14 00:10 298人阅读 评论(0) 收藏 举报SharePointlist view使用View&#xff0c;可以按照特定的要求和条件展示List/Library里面的条目。View可以做一下设定来显示数据&#xff1a; 1. 显示哪些属性(column) 2. 属性…

鸿蒙系统下载 绿色,PGWARE PcMedik

pcmedik&#xff0c;一款可以优化你的电脑&#xff0c;让pc发挥更大的性能&#xff0c;大大减少死机的事件。pcmedik操作简单&#xff0c;其优化过程只需三个步骤&#xff1a;①选择一个本机当前正在使用的操作系统。②选择本机使用的cpu类型。③点击&#xff3b;优化&#xff…

Android Audio Play Out Channel

1: 7嘴8舌 扬声器, 耳机, 和听筒 就是通过: audiomanager.setmode(AudioManager.MODE_IN_COMMUNICATION)audiomanager.setSpeakerhponeOn(boolean value).这两个来设置.不过有的好像不支持的. 米手机上切换 扬声器和听筒不能切换 Android AudioTrack音频播放分析 音频资源在播…

redis 缓存 @class: 会有 $hibernateproxy_微信亿级在线点赞系统,用Redis如何实现?

点赞功能大家都不会陌生&#xff0c;像微信这样的社交产品中都有&#xff0c;但别看功能小&#xff0c;想要做好需要考虑的东西还挺多的&#xff0c;如海量数据的分布式存储、分布式缓存、多 IDC 的数据一致性、访问路由到机房的算法等等。图片来 Pexels本文介绍大型社交平台点…

查询hive表_大数据中Hive与HBase的区别与联系

二者区别Hive&#xff1a;Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的sql查询功能。Hive本身不存储和计算数据&#xff0c;它完全依赖于HDFS和MapReduce&#xff0c;Hive中的表纯逻辑。hive需要用到hdfs…

查询使用NoLock

当我们在操作数据库的时候&#xff0c;无论是查询还是修改数据库的操作我们都习惯使用using(var dbnew XXXDB()){}&#xff0c;但是如果仅仅是做查询&#xff0c;最好是使用NoLock&#xff0c;因为NoLock使用的是共享锁&#xff0c;可以减少死锁发生的机率。 从上图中代码可以看…

端午粽香html5游戏,《快乐端午粽飘香》亲子活动教案

《快乐端午粽飘香》亲子活动教案过端午节是我国两千多年来的习惯&#xff0c;为了让幼儿更好地了解端午节&#xff0c;感受端午节丰富的文化内涵&#xff0c;激发初步的爱国主义情感&#xff0c;丰富生活经验&#xff0c;应届毕业生考试网小编特意为大家整理了《快乐端午粽飘香…

d3js绘制y坐标轴_【ggplot2】 设置坐标轴

基本箱线图library(ggplot2)bp ggplot(PlantGrowth, aes(xgroup, yweight)) geom_boxplot()bp反转 x轴 与 y轴bp coord_flip()离散型数据的坐标轴改变坐标轴中各项目的顺序 > 特别注意, 离散数据的坐标轴中数据做为 factor 变量处理,他的位置取决于 level的顺序# 手动设置…

html页面判断是否登录,egg(103)--egg之定义公共的中间件判断用户是否登录以及去结算页面制作...

判断用户是否登录中间件app/middleware/userauth.jsmodule.exports (options, app) > {return async function init(ctx, next) {//判断前台用户是否登录 如果登录可以进入 ( 去结算 用户中心) 如果没有登录直接跳转到登录var userinfo ctx.service.cookies.get(userinfo)…

计算机应用的时间地点意义,计算机应用在教学中的作用

计算机应用在教学中的作用微课已成为当前我国教育信息化发展的重点和热点。在如今的数字化“微”时代&#xff0c;微课将成为一种新的教学模式和学习方式。下面是小编搜集整理的相关内容的论文&#xff0c;欢迎大家阅读参考。摘要&#xff1a;随着我国科技和技术的不断发展&…

启继承父位在什么时候_为什么少儿口才现在越来越受到家长们的重视

情商口才是个人素养、能力和智慧的一种综合反映&#xff0c;随着社会的发展&#xff0c;少年儿童的早期教育越来越受到家长的重视&#xff0c;特别是在培养孩子的语言表达能力中&#xff0c;更多的家长开始寻求各种方法来锻炼孩子的语言表达能力。源自于美国教育演说家卡耐基的…

x光肺部分割数据集_吴恩达发布了大型X光数据集,斯坦福AI诊断部分超越人类 | AAAI 2019...

数栗子 发自 凹非寺量子位 报道 | 公众号 QbitAI最近&#xff0c;吴恩达的斯坦福团队发布了一个叫做CheXpert的大型数据集&#xff0c;论文中选了AAAI 2019。它包含了224,316张标注好的胸部X光片&#xff0c;以及放射科医师为每张胸片写的病理报告。虽然&#xff0c;像从前NIH发…

【Qt之Quick模块】6. QML语法详解_1 基础语法与三种导入语句

前言 通过以上1-5文档的介绍&#xff0c;Quick与QML的概念及QML语法、类型、文件作用等已叙述个大概&#xff0c;接下来是对QML语法进行展开来说。 其实&#xff0c;学习任何一门语言或者做任何一件事情&#xff0c;并不用一开始就要求尽善尽美&#xff0c;做个无懈可击&…

datagrip将一个数据库中的数据_跨平台数据库管理神器DataGrip,用上就爱不释手...

原文链接&#xff1a;https://www.ffeeii.com/2041.htmlDataGrip是Jetbrains旗下众多优秀的效率生产工具之一。下载地址&#xff1a;https://www.jetbrains.com/datagrip/DataGrip是多引擎数据库环境&#xff0c;支持几乎常见的数据库类型&#xff1a;PostgreSQL、MySQL、Oracl…

idea下拉项目_推荐几款非常好用的IDEA插件(香)

每天进步一点点&#xff0c;坚持下去&#xff0c;你总是会不一样的。加油&#xff01;最近在整理Java常用的一些基础、ZooKeeper、Spring全家桶、源码、Dubbo、Elasticsearch、Redis、MySql、RabbitMQ、Kafka、Linux 、微服务等技术栈。持续更新中&#xff0c;欢迎点上面后端架…

ora 00900 已编译但有错误_技术分享|万万没想到!编译错误竟然还没灭绝???

CodeWisdom-技术分享万万没想到&#xff01;编译错误竟然还没灭绝&#xff1f;&#xff1f;&#xff1f;复旦大学CodeWisdom团队的代码分析和挖掘小组针对开源软件项目持续集成过程中出现的编译错误&#xff0c;进行了大规模的经验研究。该研究分析了常见的编译错误类型、修复代…

用计算机心如止水,计算机网络数据链路层

1、数据链路层使用的信道类型&#xff1a;点对点信道(1对1)广播信道(1对多)&#xff0c;如&#xff1a;集线器、交换机2、链路与数据链路&#xff1a;链路&#xff1a;点对点的物理线路段&#xff0c;中间无任何其他交换结点数据链路&#xff1a;通信协议 软件 硬件(一般用适…

easyui tree动态加载_动态路由:Gin vs SpringMVC

这两天在接触Gin&#xff0c;对它的动态路由功能比较感兴趣&#xff0c;特意做了笔记&#xff0c;顺便跟SpringMVC作下对比。1.简介Gin是使用Go/golang语言实现的HTTP Web框架。接口简洁,性能极高。截止1.4.0版本,包含测试代码,仅14K,其中测试代码9K左右,也就是说框架源码仅5K左…

伍德里奇---计量经济学第6章部分计算机习题详解(stata),伍德里奇---计量经济学第6章部分计算机习题详解(STATA)...

所以&#xff0c;log bwg t7.5840.0180npvis?0.00041npvis20.0254mage?0.00041mage20.1370.00370.000120.0093 (0.00015)n1764&#xff0c;R20.0256&#xff0c;R20.0234。当孩子的出生体重最大时&#xff0c;对应的年龄为mage? β12β20.0254[2?0.00041] 30.96&#xff0c…

vue菜单点击html,基于vue.js实现侧边菜单栏

侧边菜单栏应该是很多项目里必不可少的 自己手写了一个下面是效果图下面就说一下实现的过程 还是比较简单的首先导入一下需要的文件接下来就是我的html主页系统用户管理权限设置操作日志设备运行日志防区 防区管理警报 历史报警曲线报表统计警情处理设备然后是css* {margin: 0;…