标准C语言(1)
C语言程序的绝大部分内容应该记录在以.c作为扩展名的文件里,这种文件叫源文件,C语言里还包含以.h作为扩展名的文件,这种文件叫做头文件
C语言程序里可以直接使用数字和加减乘除四则运算符号(*代表乘法,/代表除法)
- /*
- * C语言程序练习
- * */
- int main() {
- 2 * 2 + 5;
- return 0;
- }
C语言里每个计算步骤最后都必须用分号结束,每个用分号结束的计算步骤叫做一条语句
C语言程序里绝大部分语句应该包含在大括号中间
C语言里的大括号可以用来代表函数(函数可以看作是一组语句),每个函数都必须有自己的名字,不同函数的名字不能相同
C语言程序里必须包含一个叫做main的函数,这个函数叫主函数,程序必须从主函数的第一条语句开始执行,当主函数里最后一条语句结束后整个程序结束
C语言允许函数结束后用一个数字表示它的工作结果,这个数字叫做函数的返回值,主函数应该有返回值,如果主函数返回值是0表示,程序希望计算机认为它正常结束了,如果不是0表示程序希望计算机认为它出问题了。
C语言里预先保留了几十个英文单词,它们叫做关键字.每个关键字都有特定的用途,不能随便使用,所有关键字都是由小写英文字母构成的
return就是一个关键字,它的主要用途是结束,函数的执行(任何时候都能起这个作用),辅助用途是指定返回值的数值(当关键字后有数字的时候才起这个作用,把这个数字当作返回值使用)。
计算机里根据不同数字在某个方面的区别把数字分成几组,每组叫做一个数据类型,每个数据类型都有自己的名字,整数是一种数据类型,这种数据类型的名称是int,这种类型里包含几乎所有不带小数点的数字
程序里的数字必须有类型,程序里不带小数点的数字默认都是整数类型的
如果函数有返回值就必须把返回值的类型名称写在函数名称前
C语言程序代码规范
1.一行里最多包含一条语句
2.同级别语句最左边一列应该上下对齐
3.在合适的地方使用空格和空行
C语言里通常包含预处理指令,预处理指令以#做开头,不是以分号做结尾标准C阶段遇到的预处理指令都可以把文件里的内容替换成其他内容,#include预处理指令可以把一个头文件的内容,包含到当前文件里,这个预处理指令里通常采用相对路径表示被包含头文件的位置,把相对路径包含在<>中间表示以系统中预先规定好的一组目录依次作为起点,把相对路径包含在""中间表示首先以当前文件所在目录作为起点,然后再以系统中预先规定好的一组目录依次作为起点
- /*
- * C语言程序结构演示
- * 版本: 1.0
- * */
- #include "01demo.h"
- int main() {
- 4000/*华为手机的价格*/ - 1000/*小米手机的价格*/; //4000是华为手机的价格,1000是小米手机的价格
- return 0;
- }
C语言程序里可以加入文字性的说明信息,这些信息必须放在注释区域里,计算机直接忽略注释区域里的内容,单行注释以//做开头一直到行尾,多行注释以/*做开头以*/做结尾
C语言里会使用名称区分不同内容,这些名称叫做标识符,标识符最好采用英文单词编写,标识符的编写规则
1.第一个字符只能是英文字母或下划线
2.后面的每个字符可以是英文字母,下划线或阿拉伯数字
3.大小写不同的标识符是不同的标识符(大小写敏感)
4.关键字不可以作为标识符使用
5.标识符的长度没有限制,计算机只会截取前面一部分使用
6.标识符可以采用驼峰方式或下划线方式编写
编译器用来把编写好的文件翻译成计算机认识的格式,gcc是Linux系统里最常用的C语言编译器,MinGW是Windows里的gcc
Linux系统里C语言程序开发基本过程
1.使用vi编写源文件
2.使用gcc把编写好的文件翻译成计算机认识的格式(编译)
3.使用./a.out作为命令执行得到的结果文件
gcc编译器工作步骤
1.处理所有预处理指令
2.把第一步的处理结果翻译成计算机认识的格式(编译)
3.把第二步的处理结果合并成最终的可执行文件(链接)
gcc选项介绍
-E 只处理预处理指令
-c 只完成预处理和编译处理结果是以.o作为扩展名的目标文件
-o 用来决定结果文件名称
-std=c89/-std=c99
决定按照什么版本的规范进行编译,默认采用c89规范编译
C语言里事先提供了一组工具,它们叫做标准函数,每个标准函数用来解决一个常见的问题,每个标准函数都有自己的名字,不同标准函数的名称不同,程序里可以通过函数调用语句使用标准函数
printf标准函数可以把程序里的数字显示在屏幕上,为了使用这个标准函数需要包含stdio.h头文件,可以在双引号里使用占位符把数字转移到双引号后面.双引号后面的数字可以是未知的(比如可以是一个计算公式,计算机会首先计算公式的结果然后用这个结果替换双引号里面的占位符),不同类型的数字应该使用不同的占位符,%d这个占位符就是和整数类型数字配合使用的,可以在一条语句里使用多个占位符,这个时候,就应该在双引号后面写多个数字,数字个数应该和占位符个数一样。
- /*
- * printf标准函数演示
- * */
- #include <stdio.h>
- int main() {
- printf("1\n");
- printf("%d\n", 1);
- printf("%d\n", 6 - 5);
- printf("a%db%dc\n", 8 - 7, 1 + 1);
- return 0;
- }
- /*
- * printf标准函数练习
- * */
- #include <stdio.h>
- int main() {
- printf("4000 - 1000 = 3000\n");
- printf("%d - %d = %d\n", 4000, 1000, 4000 - 1000);
- return 0;
- }
程序里的所有数字都必须记录在内存里,计算机的内存由大量的字节构成,每个字节可以单独记录一个数字,每个字节有一个编号,不同字节的编号不同,这个编号叫做字节的地址,所有字节的地址从0开始向正数方向递增,所有字节的地址有前后顺序,地址小的在前,地址大的在后
内存里几个相邻的字节可以合并成一个整体用来记录一个数字
内存里用来记录一个数字的所有字节叫做一个存储区,一个存储区只能记录一种类型的数字,存储区也有地址,存储区的地址就是它所包含的字节中最前面那个字节的地址
C语言程序里可以使用变量代表存储区,对变量的操作就是对它所代表存储区的操作,所有变量必须首先声明然后才可以使用变量声明语句用来声明变量,变量声明语句可以让计算机为程序分配存储区,可以在一条语句里声明多个同类型变量,这个时候只需要一个类型名称
- /*
- * 变量演示
- * */
- #include <stdio.h>
- int main() {
- int num = 0, num1 = 0; //变量声明语句
- num = 10; //赋值语句
- num = 6 + 9;
- num + 10;
- printf("num是%d\n", num);
- num = num;
- return 0;
- }
- /*
- * 变量练习
- * */
- #include <stdio.h>
- int main() {
- int price1 = 4000, price2 = 1000;
- printf("%d - %d = %d\n", 4000, 1000, 4000 - 1000);
- printf("%d - %d = %d\n", price1, price2, price1 - price2);
- return 0;
- }
赋值语句可以向变量代表的存储区里放一个数字,赋值语句里需要使用赋值操作符(=),赋值操作符左边的内容必须可以代表存储区,这种内容叫左值(变量就是最简单的左值),赋值操作符右边的内容必须可以代表数字,赋值操作符可以把右边的数字放到左边的存储区里
- /*
- * 变量演示
- * */
- #include <stdio.h>
- int main() {
- int num = 1;
- printf("%d ", num);
- num = num + 1;
- printf("%d ", num);
- num = num + 1;
- printf("%d ", num);
- num = num + 1;
- printf("%d ", num);
- num = num + 1;
- printf("%d\n", num);
- return 0;
- }
- /*
- * 变量练习
- * */
- #include <stdio.h>
- int main() {
- int num = 1, ten = 10;
- printf("%d X %d = %d\n", num, ten - num, num * (ten - num));
- num = num + 1;
- printf("%d X %d = %d\n", num, ten - num, num * (ten - num));
- num = num + 1;
- printf("%d X %d = %d\n", num, ten - num, num * (ten - num));
- num = num + 1;
- printf("%d X %d = %d\n", num, ten - num, num * (ten - num));
- num = num + 1;
- printf("%d X %d = %d\n", num, ten - num, num * (ten - num));
- return 0;
- }
可以在声明变量的时候就对变量进行赋值,这叫做变量的初始化,C语言里所有变量都应该初始化
可以在程序里直接把变量当数字使用,这个时候计算机会先从变量对应的存储区里获得数字然后再进行其他计算
变量名称可以代表两个完全不同的内容(一个是存储区另外一个是存储区里的数字),由它所在的位置决定
存储区的地址也可以用来代表存储区,变量名称前使用符号&可以计算出变量对应存储区的地址,可以使用%p作为占位符把地址数据显示在屏幕上
变量可以用来代表一个固定数字
变量可以用来代表一组数字(变量在不同的时候代表不同的数字)
- /*
- * 变量练习
- * */
- #include <stdio.h>
- int main() {
- int num = 54321, ten = 10;
- printf("%d\n", num);
- num = num / ten;
- printf("%d\n", num);
- num = num / ten;
- printf("%d\n", num);
- num = num / ten;
- printf("%d\n", num);
- num = num / ten;
- printf("%d\n", num);
- return 0;
- }
标准C语言(1)的更多相关文章
- 关于标准C语言的预定义宏【转】
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来. __LINE__ 当 ...
- 【部分原创】标准C语言的优先级、结合性、求值顺序、未定义行为和非确定行为浅析
零. 优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It ...
- 标准SQL语言的用法
原文链接:http://www.ifyao.com/2015/05/18/%E6%A0%87%E5%87%86%E7%9A%84sql%E8%AF%AD%E8%A8%80%E4%BD%BF%E7%94 ...
- 关于标准C语言的预定义宏
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来.__LINE__ 当前 ...
- UML标准建模语言与应用实例
一.基本信息 标题:UML标准建模语言与应用实例 时间:2012 出版源:科技创新导报 领域分类:UML标准建模语言 面向对象 系统分析与设计 二.研究背景 问题定义:UML建模语言用图形来表现典型的 ...
- UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。
UML UML(统一建模语言)是通用的可视化标准建模语言.由构造块.公共机制.构架三部分组成. 1.构造块:包括基本的UML建模元素(类.接口.用例等).关系(关联关系.依赖关系.泛化关系.实现关系) ...
- 标准C 语言总结
***************C语言****************** --day01-- Linux是一个和Windows类似的操作系统 通常通过终端软件使用Linux操作系统 终端软件里只能使用 ...
- 【M35】让自己习惯于标准C++语言
1.最近一些年C++语言增加的特性有: a.RTTI,namespace,bool,关键字mutable和explicit,enums,以及const static int可以直接初始化. b.扩充了 ...
- 标准C语言的输入输出流(i/o)方法详解
cppreference.com -> 标准 C I/O ->详细说明 标准 C I/O clearerr 语法: #include <stdio.h> void cleare ...
随机推荐
- linux常用命令(19)find xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...
- WIN10远程协助无法控制的解决方法
这个问题比较常见小编整理的解决方法如下: 方法一:用QQ远程协助对方电脑,需要QQ告诉对方右键单击计算机(这台电脑)点管理打开计算机管理界面选择本地用户和组,再选择用户,右侧会出现所有的本地用户,包括 ...
- 【Python开发】Python:itertools模块
Python:itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器 ...
- C++学习笔记-模板
模板把函数或类要处理的数据类型参数化,表现为参数的多态性,称为类属.模板用于表达逻辑结构相同,但具体数据元素类型不同的数据对象的通用行为. 什么是模板 类属--类型参数化,又称参数模板 使得程序(算法 ...
- sqlalchemy一对一关系映射
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text ...
- Eclipse中格式化代码
Eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法 格式化代码的时候,右键 --> Source --> Format 能够起效,但 Ctrl+Shift+F不好使. ...
- 大数据之Hadoop完全分布式集群搭建
1.准备阶段 1.1.新建三台虚拟机 Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建.我们准备3台服务器(关闭防火墙.静态IP.主机名称).如果没 ...
- Luogu P2569 [SCOI2010] 股票交易
此题链接到dp常见优化方法 开始的时候被纪念品误导,以为是多支股票,后来发现事情不妙: 这道题知道的是某一只股票的走势: \(Solution\): \(70pts\): 设\(f[i][j]\)表示 ...
- linux shell脚本中使用expect(脚本打开新终端自动远程连接顺便输一点指令)(巨坑)
放弃吧 我找了六个小时都没找到可以用的方案(指标题括号里的内容) 给个曲线救国的方法: 现把expect脚本写成一个文件 在另一个shell脚本中调用
- cmd_操作MySQL数据库
建议用 TXT 文档来写代码 然后粘贴至cmd命令直接运行创建students库,表名为student,表包含以下字段: id(主键) name(姓名) age(年龄) sex(性别) sc(综合积分 ...