C语言<前年笔记整理>(一)C语言初识
一些操作的说明:由于本屌是学iSO出身,So我所学的c语言大多在mac系统里敲代码的。
(一)
先介绍下mac的一些操作吧
========================================
一、mac系统使用
1.mac系统简单介绍
Mac 是一种类 Unix 的图形化界面操作系统,有两种开发环境:图形化 IDE 和终端Terminal。(简单的说就是苹果开发的一套操作系统)
2.Dock(停靠栏--一般在屏幕底部)、Finder(我的电脑)、常用软件(safari,系统偏好设置)
3.文件系统
1)windows中我的电脑--相当于Mac中的Finder
2)文件路径对比
windows D:/shipin/后会无期.mp4
mac /Users/mac/shipin/X战警.mp4 ‘/‘表示根目录
4. 常用快捷键
a) Command+Tab:任意情况下切换应用程序
b) Command+~:同一应用程序多窗口间切换
c) Command+F:呼出大部分应用程序的查询功能
d) Command+C/V/X:复制/粘贴/剪切
e) Command+N:新建应用程序窗口
f) Command+Q:退出当前应用程序
g) Control+Space:呼出 Spotlight,右上角的查询图标。
h) Command+Space:切换输入法
========================================
二、常用终端命令
如何打开终端
1.通过点击finder---应用程序---实用工具---终端
2.将固定到dock中
终端介绍
主机名:当前目录 用户名
例如 : admindeMacBook-Pro:~ admin$
unix命令
1.pwd显示当前目录,当前工作路径
根目录和home目录
(a)根目录:
Mac 系统没有分区的概念,整个计算机文件系统从根目录’/’开始,由一层层的目录 (windows 里的文件夹)组成,文件根据功能安装在不同的目录里。整个系统目录结 构从根目录’/’开始,形成一个倒树形结构。
(b) home 目录:
每个 Mac用户都有一个 home 目录,该用户的所有操作,例如创建的个人目录和 文件,通常放在该目录里。通常打开终端 Terminal 后,自动进入当前用户的 home 目录。
2.ls文件显示
1)通过ls显示当前目录下的文件
3.ls参数使用
1)显示当前目录下文件的信息
ls -l // list
2)如何显示所有文件,包括以点开头的文件
ls -a
3)如何显示指定目录文件
ls [参数] 文件名
4.cd进入目录
1)如何进入目录
2)返回上级目录
3)cd 快速回到用户目录
5.相对路径和绝对路径
(a)绝对路径 绝对路径是从根目录’/’开始,计算的某一文件/文件夹的路径。
功目录的各级目录功能
/User/qianfeng/Public
(b)相对路径 相对路径是从当前路径开始,计算机的某一文件/文件夹的路径。
深圳-樟木头-常平-东莞-广州
(c)当前目录当前用户执行操作的工作目录,当前目录可以通过 cd 命令改变,可以通过 pwd 命令显示当前目录的绝对路径。当前目录可以用标识符’.’引用。
1)如何通过绝对路径进入目录
2)如何进入/目录
(d) 父目录 除根目录’/’外,每个目录都有一个上级目录,通常称为父目录。父目录可以用标识 符’..’引用。
cd . 当前目录
//cd ..返上一级
cd - 返上一次
cd ~ 返home
6、 目录操作:目录创建,复制和删除
1>.mkdir //创建文件
2>.rm -r //删除文件或目录
3>.cp -r //复制文件或目录
4>.mv //在不同目录下操作是剪切 在同一目录下操作是重命名
7文件操作:文件创建,删除和复制
1>.touch 创建文件
touch 文件名
重名文件什么都不会发生
open 文件名 //打开文件(夹)
2>.rm
3>.cp复制
cp 源文件 目标路径
4>.mv剪切
mv 源文件 目标路径
重命名:
mv 文件名 ./新的文件名
说明:命令其实就是一些已经编写好的应用程序
除了终端自带的之外,还有第三方的命令
终端技巧
1>.文件和命令名的补全
tab键补全
2>.历史命令
方向键的上和下查找
history
3>.clear清屏或者control+l
====================================
(二)c语言程序编写
====================================
一、第一个C程序Hello World(环境:Xcode和终端)
#include <stdio.h> // 包含头文件 int main(void) // 主函数 { // 主函数开始 // 函数体:功能代码 printf("Hello World\n"); return 0; }//主函数结束 输出: Hello World
步骤:
1.编写 .c 源文件(比如说,我写了个 源文件: ab.c )
2.编译 .c源文件变成.o目标文件( cc -c ab.c )
3.链接 ( cc ab.o ) 生成可执行文件
4.运行 ./a.out
( 编译链接一起,cc ab.c )
二、C程序的开发过程
1.用Xcode编写.c源文件
C程序由函数构成 C程序的入口是main函数,只能有一个,而且必须有一个
2.用clang编译.c源文件为.o目标文件
编译过程中检测程序的语法,产生相应的错误(error)和警告(warning)信息 如果有错误(error),那么编译失败,不可能产生.o目标文件 如果有警告(warning),并不影响编译,可以产生.o目标文件(前提是没有错误) 编译过程只会检测语法,并不会检测有没有函数的定义
3.用clang链接.o目标文件为.out可执行文件
链接的时候会检测有没有函数的定义,如果没有定义,就链接失败
4.用终端运行.out可执行文件
编译:只会检测语法,并不会检测有没有主函数或者其他函数
链接:链接的时候会严格检测有没有函数的定义(linker链接器)
注意:
1)未定义 标示
Undefined symbols for architecture x86_64:
"_main", referenced from:
错误描述:因为没有主函数
2)编译含有空格的.c文件 用Tab键补全
3)在终端生成出来的文件处在终端的当前目录