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)的更多相关文章

  1. 关于标准C语言的预定义宏【转】

    标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来. __LINE__  当 ...

  2. 【部分原创】标准C语言的优先级、结合性、求值顺序、未定义行为和非确定行为浅析

    零. 优先级    在C++ Primer一书中,对于运算符的优先级是这样描述的:     Precedence specifies how the operands are grouped. It ...

  3. 标准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 ...

  4. 关于标准C语言的预定义宏

    标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来.__LINE__  当前 ...

  5. UML标准建模语言与应用实例

    一.基本信息 标题:UML标准建模语言与应用实例 时间:2012 出版源:科技创新导报 领域分类:UML标准建模语言 面向对象 系统分析与设计 二.研究背景 问题定义:UML建模语言用图形来表现典型的 ...

  6. UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。

    UML UML(统一建模语言)是通用的可视化标准建模语言.由构造块.公共机制.构架三部分组成. 1.构造块:包括基本的UML建模元素(类.接口.用例等).关系(关联关系.依赖关系.泛化关系.实现关系) ...

  7. 标准C 语言总结

    ***************C语言****************** --day01-- Linux是一个和Windows类似的操作系统 通常通过终端软件使用Linux操作系统 终端软件里只能使用 ...

  8. 【M35】让自己习惯于标准C++语言

    1.最近一些年C++语言增加的特性有: a.RTTI,namespace,bool,关键字mutable和explicit,enums,以及const static int可以直接初始化. b.扩充了 ...

  9. 标准C语言的输入输出流(i/o)方法详解

    cppreference.com -> 标准 C I/O ->详细说明 标准 C I/O clearerr 语法: #include <stdio.h> void cleare ...

随机推荐

  1. kubernetes排错系列:(一)、机房搬迁导致的节点NotReady

    说下背景: 上周六机房进行搬迁,我所在的网段的机器都重启了一遍.重启之后kubernetes集群不正常.如下 排查过程: # 查看节点信息 kubectl describe nodes cbov10- ...

  2. lab 颜色模式的生理原因 黄色, 洋红色 刺眼。 绿色,蓝色,不刺眼。

    hsb 颜色模式理解了. lab 颜色模式,都说是生理原因.没说是啥生理原因. 猜测:黄色, 洋红色 刺眼.   绿色,蓝色,不刺眼. https://blog.csdn.net/self_mind/ ...

  3. etcd安全集群三节点扩容至四个节点

    规划:先安装三台组建集群,然后扩容一个安全节点进来 .环境: 三台centos7. 主机 192.168.0.91 192.168.0.92 192.168.0.93 都关闭防火墙 都关闭selinu ...

  4. DevOps - Scrum

    1 - DevOps与敏捷开发 在采用敏捷开发的情况下,所有成员都对服务和产品负责,理解彼此的业务,符合DevOps的组织和文化. 以商业需求为核心,在较短期间内确定开发方针,并持续进行改善,从而逐步 ...

  5. Java ——关键字 数据类型 变量 常量

    本节重点思维导图 Java程序结构 public class 类名 { public static void main(String[] args){ //……语句 } } 一门语言是由以下各种元素组 ...

  6. shell一文入门通

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/hebtu666/article/deta ...

  7. 【AMAD】itsdangerous -- 用安全的方式把可信赖的数据传入不可信赖的环境,或者相反

    动机 简介 内部原理 个人评分 动机 有时,你不得不把数据发送给一些不信赖的环境. 但是怎么安全地做这件事呢?答案就是使用签名. 简介 使用签名,首先设定一个只有你知道的key,你可以使用它来为你的数 ...

  8. OpenStack组件——Neutron网络服务(2)

    1.虚拟机获取 ip 1)用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Namespac ...

  9. 记录一次MySQL进程崩溃,无法重启故障排查

    最近程序在跑着没几天,突然访问不了,查看应用进程都还在.只有数据库的进程down掉了.于是找到日志文件看到如下错误 -- :: [Note] InnoDB: Initializing buffer p ...

  10. 【转贴】龙芯内核发展策略 已经支持k8s

    龙芯内核发展策略 时间:2019-06-27 15:48  来源:未知   作者:龙芯中科   点击:1002次 http://www.loongson.cn/m/view.php?aid=1118 ...