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,一经查实,立即删除!

相关文章

android 关机闹钟 实现,安卓关机闹钟:你所不知道的关机闹钟的背后

可以通过其他方式实现关机闹钟事实上大家也大可不必抱怨Android手机或者是iPhone的固执做法&#xff0c;因为目前在Android手机当中&#xff0c;全新的“明”系列摩托罗拉A1680就已经支持关机闹钟了&#xff0c;这就更加说明了该功能和系统无关。而苹果iPhone也可以通过一些非常…

flux读取不到数据_初学flux的疑问?无法添加数据到DOM

我初学flux,照着网上的代码&#xff0c;尝试学习写了一个简单的添加数据表页面&#xff0c;如图&#xff1a;我想实现的功能是在下方表单填写数据之后点击提交可以实时的在上方表格添加一条数据&#xff0c;现在碰到的问题是我点击提交毫无反应也没有报错。我的架构是这个样子的…

列表视图

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

android 线程 界面,android开发教程之子线程中更新界面

每个Handler对象与创建它的线程相关联&#xff0c;并且每个Handler对象只能与一个线程相关联。Handler一般有两种用途&#xff1a;1)执行计划任务&#xff0c;你可以再预定的实现执行某些任务&#xff0c;可以模拟定时器。2)线程间通信。在Android的应用启动时&#xff0c;会创…

vue怎么让接口带上cookie_在Vue中如何使用Cookie操作实例

大家好&#xff0c;由于公司忙着赶项目&#xff0c;导致有段时间没有发布新文章了。今天我想跟大家谈谈Cookie的使用。同样&#xff0c;这个Cookie的使用方法是我从公司的项目中抽出来的&#xff0c;为了能让大家看懂&#xff0c;我会尽量写详细点。废话少说&#xff0c;我们直…

python 简历处理_按照这个方式学Python,老板把垃圾桶里的简历舔回来:月薪50000...

对于Python相信很多人都不陌生&#xff0c;相较于Excel、Tableau、PowerBI等普通的数据分析工具来说&#xff0c;Python的优势显然要大很多。Python有很多优点&#xff0c;如果你能很好的运用到工作中&#xff0c;会发现工作效率大大提升&#xff0c;涨薪也是再正常不过的事情。…

鸿蒙系统下载 绿色,PGWARE PcMedik

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

attr和prop区别

今天写了个小程序&#xff0c;获取input[checked]属性&#xff0c;$(#check1).attr(checked)&#xff0c;结果返回undefined&#xff0c;查询了一番&#xff0c; 如果是具有true和false两个属性值的属性 如checked selected 或者disabled获取该属性值要用prop()返回boolean值&a…

html5视频抓取,js和HTML5基于过滤器从摄像头中捕获视频的方法

这篇文章主要介绍了jsHTML5基于过滤器从摄像头中捕获视频的方法,涉及javascript基于html5元素操作多媒体的使用技巧,需要的朋友可以参考下本文实例讲述了jsHTML5基于过滤器从摄像头中捕获视频的方法。分享给大家供大家参考。具体如下&#xff1a;index.html页面&#xff1a;Nat…

Android Audio Play Out Channel

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

c html转换成word,C#实现HTML转WORD及WORD转PDF的方法

本文实例讲述了C#实现HTML转WORD及WORD转PDF的方法。分享给大家供大家参考。具体如下&#xff1a;功能&#xff1a;实现HTML转WORD&#xff0c;WORD转PDF具体代码如下&#xff1a;using System;using System.Collections.Generic;using System.ComponentModel;using System.Dat…

bootstrap下拉框分页_【Bootstrap】 bootstrap-select2下拉菜单插件

这次开发了个小TRS系统&#xff0c;虽然是很小&#xff0c;但是作为初心者&#xff0c;第一次用到了很多看起来洋气使用起来有相对简单的各种前端(主要是和bootstrap配合使用)组件。包括bootstrap-select2&#xff0c;bootstrap-datetimepicker&#xff0c;bootstrap-fileinput…

Java-eclipse快捷键及设置

CtrlD: 删除当前行 CtrlAlt↓ 复制当前行到下一行(复制增加) CtrlAlt↑ 复制当前行到上一行(复制增加) Alt↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt↑ 当前行和上面一行交互位置(同上) Alt← 前一个编辑的页面 Alt→ 下一个编辑的页面(当然是针对上…

html 网页主题设置吗,如何使用css样式对html页面进行背景设置呢?

摘要:下文讲述css样式对html页面的背景色、背景图片进行相关设置的方法分享&#xff0c;如下所示:在html中&#xff0c;定义元素的背景信息&#xff0c;可以采用以下css属性&#xff0c;如下所示:css属性功能background在此属性中,我们将所有的背景设置都放入此属性值中backgro…

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

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

Xcode怎样调整模拟器大小

快捷键&#xff1a; Command 1&#xff1a;显示100%大小 Command 2&#xff1a;显示50%大小&#xff08;默认&#xff09;转载于:https://www.cnblogs.com/xiaofeng6636/p/4311753.html

查询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的顺序# 手动设置…