C语言-01-基本语法
一、学前需知
开发工具
windows平台:Visual C++6.0等
mac平台:Xcode6.0等
以下文章内容皆是以Xcode6.0为开发工具,clang编译器。
Xcode的一些常用快捷键
CMD + N: 新文件
CMD + SHIFT + N: 新项目
CMD + O: 打开
CMD + SHIFT + S: 另存为
CMD + D: 添加书签
CMD + /: 注释或取消注释
CMD + \: 设置或取消断点
CMD + R: 编译并运行(不触发断点)
CMD + SHIFT + RETURN: 终止运行或调试
Ctrl + K :删除本行
Ctrl + A : 移动光标到本行行首
Ctrl + E : 移动光标到本行行尾
Command + Ctrl + S :创建快照
常用的Unix指令
/
./
../
cd
pwd
ls -l
tab键
mkdir
rmdir
touch
rm
open
clear
二、一个C语言程序的执行过程
编写代码
用编辑器编写.c源文件
编译
① cc -c name.c,生成.o目标文件,只检测文件有没有语法错误。
② 可同时编译多个源文件,中间用空格隔开,如:cc -c a.out b.out。
③ 分为三个阶段:预处理、分析、独立编译。
链接
① cc name.o,生成a.out可执行文件,可以通过-o name参数来改
变可执行文件的名字。
② 可同时链接多个目标文件,如:cc a.o b.o。
③ cc可以同时完成编译和链接任务,可编译源文件并与已有的目标文
件链接,如cc a.o b.c。
运行
① 在终端运行有以下两种方式
1)./a.out
2)根路径a.out
三、C语言的基本语法
关键字
C语言提供了32个关键字,将其简单的分类,如下:
① 变量类型:char、int、float、double、struct、enum、union
② 修饰类型:signed、unsigned、
short、long
auto、static、const、 volatile、register、
extern、
③ 流程控制:if、else、
switch、case、default、
for、while、do,
goto、return
标示符
命名规范:
① 由字母、数字和下划线组成
② 第一个字符不能使数字,只能是字母或下划线
③ 区分大小写
④ 尽量用有意义的单词作为标示符,做到见名知意
⑤ 使用驼峰标志(每个单词首字母大写)或下划线(单词之间用_间隔)
⑥ 标示符的长度没有限制,但编译器可以忽略第31个字符以后的字符
⑦ 编译器可以对用于外部名字的标示符进行限制,只是别前六位不区
分大小写的字符
注释
注释掉的内容不会参与编译,不影响可执行文件的大小,注释分为以下几种形式:
① 单行注释,如://这是注释掉的内容。快捷键,command +/
② 多行注释,如:/*这是注释掉的内容*/。快捷键,command +/
③ 使用注意,多行注释可以嵌套单行注释,但是不能嵌套多行注释
④ 注释的作用:检测代码、排除错误
数据
分类:
① 基本数据类型:字符型、整型、浮点型
② 指针
③ 构造类型:数组、结构体、枚举、共用体
④ void
常量
① 整型:如,12
② 浮点型:如,23.2
③ 字符型:如,'a'
④ 字符串型:如,"This is a C program"
变量
① 变量的内存分析:
1)定义一个变量,如int a,相当于在内存中分配一定的存储空间
给变量a
2)&a就是该段存储空间的地址值,a就是该段空间中存储的变量
值。
3)限定变量类型主要是为了在分配内存空间时,根据变量类型为
变量分配相应类型和大小的内存 ② 变量的作用域
1) 代码块作用域:从定义变量开始到该代码块结束,代码块内部
的变量会屏蔽代码块外部的同名变量
2) 文件作用域:在所有代码块外部定义的变量,从定义变量开始
到所在的源文件结束
3) 原型作用域:只适用于函数原型中声明的参数名,可以防止参
数名与程序其他部分的名字冲突
4) 函数作用域:只适用于语句标签,语句标签适用于goto语句。
goto语句会破坏程序结构,但在跳出多重循环时很有效 ① 交换两个变量值得三种方式(这里不使用插入代码的格式)
1)使用中间变量
{
int a = 10;
int b = 20;
int temp;
//交换
{
temp = a;
a = b;
b = temp;
}
}
2) 使用加减运算
{
int a = 10;
int b = 20;
//交换
{
a = b - a;
b = b - a;
a = b + a;
}
}
3) 使用位操作符
{
int a = 10;
int b = 20;
//交换
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
}
scanf函数
基本使用
① scanf函数是一个阻塞式的函数
② 用占位符来接受输入的数据,用&name,来表示变量存储的内存
地址
使用注意
① 当输入多个数据时,分隔符要与scanf函数中的一致,若scanf
函数中无间隔符,则可以用适当的字符
② scanf函数中的间隔符,空格、tab和回车是等价的
③ scanf函数中的字符串参数中不能出现空格
C语言-01-基本语法的更多相关文章
- C语言-01基础语法
1) 总结常见文件的拓展名 .c 是C语言源文件,在编写代码的时候创建 .o 是目标文件,在编译成功的时候产生 .out 是可执行文件,在链接成功的时候产生 2) 总结 ...
- 关于JS脚本语言的基础语法
JS脚本语言的基础语法:输出语法 alert("警告!"); confirm("确定吗?"); prompt("请输入密码");为弱 ...
- Xamarin XAML语言教程基础语法篇大学霸
Xamarin XAML语言教程基础语法篇大学霸 前 言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...
- Cocos2d-x 脚本语言Lua基本语法
Cocos2d-x 脚本语言Lua基本语法 前面一篇博客对Lua这门小巧的语言进行了简单的介绍.本篇博客来给大家略微讲一下Lua的语法.不会长篇累牍得把Lua的全部语法都讲一遍,这里通过下面几点来讲L ...
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
- 03.从0实现一个JVM语言系列之语法分析器-Parser-03月01日更新
从0实现JVM语言之语法分析器-Parser 相较于之前有较大更新, 老朋友们可以复盘或者针对bug留言, 我会看到之后答复您! 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个 ...
- Django模板语言(常用语法规则)
Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...
- javaScript基础-01 javascript语法结构
一.基础 字符集 JavaScript程序是用Unicode字符集编写的. .区分大小写 .空格.换行符和格式控制符 .Unicode转义序列 .标准化 二.类型.值和变量 JavaScript的数据 ...
- tn文本分析语言(二) 基本语法
tn是desert和tan共同开发的一种用于匹配,转写和抽取文本的语言.解释器使用Python实现,代码不超过1000行. 本文主要介绍tn的基本语法.高级内容可以参考其他篇章.使用这样的语法,是为了 ...
随机推荐
- Linux下打开串口设置
给出打开串口函数 int open_tty(char tty[]) { int fd; char tty_path[32]={0}; sprintf(tty_path,"/dev/%s&qu ...
- AngularJS 五大特性,加快 Web 应用开发
AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发.如果你在开发单页的应用程序,我敢肯定你已经听说过它.我是 AngularJS 的忠实粉丝,在这篇文章中我将概述 ...
- iOS-UISegmentedControl-隐藏边框
原理: 1. 用tintColor属性,把整个UISEgmentControl 设置成为透明色. 2. 设置正常状态下的titleTextAttributes.和选中状态下的titleTextAttr ...
- iOS-nil,Nil,NULL的区别
一.简述 1.nil用来给对象赋值(Objective-C中的任何对象都属于id类型) 2.NULL则给任何指针赋值,NULL和nil不能互换 3.nil用于类指针赋值(在Objective-C中类是 ...
- 利用 ELK系统分析Nginx日志并对数据进行可视化展示
一.写在前面 结合之前写的一篇文章:Centos7 之安装Logstash ELK stack 日志管理系统,上篇文章主要讲了监控软件的作用以及部署方法.而这篇文章介绍的是单独监控nginx 日志分析 ...
- ecshop中那些有意思的代码
1:返回数量为0的array,而不是null /** * 获得推荐商品 * * @access public * @param string $type 推荐类型,可以是 best, new, hot ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- zTree的使用
一.节点模糊搜索功能:搜索成功后,自动高亮显示并定位.展开搜索到的节点. 二.节点异步加载:1.点击展开时加载数据:2.选中节点时加载数据. 前台代码如下: <script type=" ...
- JAVA的网络编程基础概念
网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协 ...
- BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系
前面我们使用过数据源向导.数据源视图向导.Cube向导来创建相应的对象. 本篇我们将学习使用维度向导来创建维度. 通过前面几个向导的学习,我们归纳一下共同点,主要分成两步 1. 使用某种对象类型的向导 ...