C 语言简单编程速成( 二 )
C 语法C 语言不是一种脚本语言 。 它是一种编译型语言 , 这意味着它由 C 编译器处理来产生一个二进制可执行文件 。 这不同于脚本语言(如 Bash )或混合型语言(如 Python ) 。
在 C 语言中 , 你可以创建函数来执行你希望做到的任务 。 默认情况下 , 执行的是一个名为 main 的函数 。
这里是一个使用 C 语言写的简单的 “hello world” 程序:
#include int main() {printf("Hello world");return 0;}
第一行包含一个被称为 stdio.h(标准输入和输出)的 头文件 , 它基本上是自由使用的、非常初级的 C 语言代码 , 你可以在你自己的程序中重复使用它 。 然后创建了一个由一条基本的输出语句构成的名为 main 的函数 。 保存这些文本到一个被称为 hello.c 的文件中 , 然后使用 GCC 编译它:
$ gcc hello.c --output hello
尝试运行你的 C 语言程序:
$ ./helloHello world$
返回值
这是 Unix 哲学的一部分 , 一个函数在执行后“返回”一些东西:在成功时不返回任何东西 , 在失败时返回其它的一些东西(例如 , 一个错误信息) 。 这些返回的内容通常使用数字(确切地说是整数)表示:0 表示没有错误 , 任何大于 0 的数字都表示一些不成功的状态 。
Unix 和 Linux 被设计成在运行成功时保持沉默是很明智的 。 这是为了让你在执行一系列命令时 , 假设没有任何错误或警告会妨碍你的工作 , 从而可以始终为成功执行做准备 。 类似地 , 在 C 语言中的函数在设计上也预期不出现错误 。
你可以通过一个小的修改 , 让你的程序看起来是失败的 , 就可以看到这一点:
include int main() {printf("Hello world");return 1;}
编译它:
$ gcc hello.c --output failer
现在使用一个内置的 Linux 测试方式来运行它 。 仅在成功时 ,--tt-darkmode-color: #42962A;">失败时 , || 测试会执行一个命令的第二部分 。
$ ls blah || echo "it did not work"ls: cannot access 'blah': No such file or directoryit did not work
现在 , 尝试你的程序 , 在成功时 , 它不返回 0;而是返回 1:
$ ./failer--tt-darkmode-color: #42962A;">类型 。 这些语言如此设计使得解释器需要对一个变量运行一些测试来视图发现变量是什么样的数据类型 。 例如 , var=1 定义了一个整型数 , 当你创建一个表达式将 var 与某些东西相加时 , Python 知道显然它是一个整型数 。 它同样知道当你连接 hello 和 world 时 , 单词 world 是一个字符串 。
C 语言不会为你做任何这些识别和调查;你必须自己定义你的变量类型 。 这里有几种变量类型 , 包括整型(int) , 字符型(char) , 浮点型(float) , 布尔型(boolean) 。
你可能也注意到这里没有字符串类型 。 与 Python 和 Java 和 Lua 以及其它的编程语言不同 , C 语言没有字符串类型 , 而是将字符串看作一个字符数组 。
这里是一些简单的代码 , 它建立了一个 char 数组变量 , 然后使用 printf 将数组变量和一段简单的信息打印到你的屏幕上:
#include int main() {char var[6] = "hello";printf("Your string is: %s\r\n",var);}
你可能会注意到 , 这个代码示例向一个由五个字母组成的单词提供了六个字符的空间 。 这是因为在字符串的结尾有处一个隐藏的终止符 , 它占用了数组中的一个字节 。 你可以通过编译和执行代码来运行它:
$ gcc hello.c --output hello$ ./hellohello
函数和其它的编程语言一样 , C 函数也接受可选的参数 。 你可以通过定义你希望函数接受的数据类型 , 来将参数从一个函数传递到另一个函数:
- 机器人|万州区举办“中国梦科技梦”机器人编程大赛
- 1个手机怎么登录2个微信?方法很简单,看完我学会了
- 原来华为手机拍视频还能添加字幕,方法很简单,一学就会
- 手机照片、视频怎样添加文字?原来很简单,4种方法一分钟搞定
- 微信最近很火的“圣诞帽头像”,原来这么简单,快学起来
- 只为好看?手机多摄像头排布方式可没有那么简单
- 为什么我喜欢C语言,却非常讨厌C++?一位国外程序员的回答
- DeepMind新AI无需提前知晓规则也能掌握游戏:无论视觉简单还是复杂
- 剪视频很头大?Reno5 Pro+教你简单制作Vlog
- 英特尔推出可检测代码错误的ControlFlag机器编程工具