C语言基本语法及原理初始:

/* ******************************************* *

数据类型

说明数据大小

char       1

short     2

int        4

float      4

double     8

构造类型

存储类型

存放在内存中的位置

(堆、栈(auto)、静态区域、代码段)

功能

代码的操作(干什么)

+ - * / % & ||  是运算符

控制语句

选择或循环

函数

* ******************************************** */

标识符

变量:

1. 数字、字母、下划线

2. 首字母不可以为数字,且区分大小写

3. 不可与系统关键字相同

定义变量的格式:

<存储类型>    <数据类型>   <变量名>

|               |           |申请空间的别名

|               |说明申请的空间的大小

|               char     short    int

|

说明申请的空间在内存中的位置的。

auto   static   extern  register

栈       静态    静态     寄存器

int a = 998; //初始化

int b; 先定义

b = 998; 后赋值

常量:

直接常量:

int a = 5;

float  f = 3.14159;

"hello  world";

char c = ‘A‘;

符号常量

#define    Pi   3.14159

int a  = 6;

int const  a = 6;

const  int a = 6;

//const表示将a常量化,不可以通过对a赋值改变a的空间

存储基本单位:

位bit

字节byte   KB     MB  GB

数据的表示方法:

1.整数:

整型数据:

十进制

八进制   <只能表示整数(char short int long)>

十六进制 <只能表示整数(char short int long)>

二进制(C语言不支持,但计算机内部只识别二进制)

进制转换:

十进制<==>二进制

整数-->二进制  辗转相除,除2求余,从下向上读

小数-->二进制           乘2取整,从上向下

二进制 ==>八进制

整型数据的有符号与无符号:

signed int     x; (有符号类型最高位作为符号0表示正数,1表示负数)

unsigned  int  y; (最高位同样作为有效数据位)

整型的打印:

有符号类型;

printf("%d", x);

无符号类型:

printf("%u", y);

2.字符:

ASCII码:

原码:

直接转成二进制,最原始的二进制表示方法, 但在负数运算时,结果出错.进而提出反码.

反码:

正数的反码和原码相同,负数的反码是在原码的基础上取反(符号位不变). 反码解决了原码不能计算的问题,但同时带来了-0,进而提出了补码.  (反码加法采用循环进位的方法)

补码:

正数的补码和反码相同

负数的补码在反码的基础上+1。(对原取反+1,符号位除外)

取值范围:

有符号类型字符 : -128 ~  127

无符号类型字符 : 0 ~ 255

PS:

类型的最大值+1 -->变成类型的最小值

类型的最小值-1 -->变成类型的最大值

3.实型/浮点型:

单精度 float

1位符号位 +8位指数位+23小数位 (偏移码+127)

将一个浮点型数据存放进内存:

1.将浮点型数据转换成二进制指数形式,获取符号位 指数 数据大小

2.float内存最高位存放符号位,紧接着8位存放指数+127的二进制,低23位存放数据的小数位,没错,数据的整数位直接丢弃(因为二进制数据的整数位一定是1,所以可以省略,还原时加上就行)

演示:

6.9 存进内存

测试:将 17.625存进内存

双精度 double

1位符号位 + 11位指数位 + 52小数位 (偏移码+1023)

精度范围  能保证15位有效数据

判断一个float型变量x是否为0:

#define  EP   0.000001

if ( (x<=EP)&&(x>=-EP) )

{

}

原文地址:https://www.cnblogs.com/lanbofei/p/9240348.html

时间: 2024-10-16 10:30:33

C语言基本语法及原理初始:的相关文章

嵌入式linux C++语言(二)——C++对C语言基础语法的扩展

嵌入式linux C++语言(二)--C++对C语言基础语法的扩展 C++是基于C语言扩展发展而来的面向对象的程序设计语言,本文将主要讨论C++语言基于C语言扩展的方面. 一.类型增强 1.类型检查更严格 在C语言中: const int a = 100; int *p = &a; 在C++语言中: const int a = 100;//必须在定义的时候初始化 const int *p = &a; 在C++语言中不能隐式转换数据类型. error: invalid conversion

2. Go 语言基本语法

Go语言基本语法 变量.数据类型和常量是编程中最常见,也是很好理解的概念.本章将从 Go 语言的变量开始,逐步介绍各种数据类型及常量. Go 语言在很多特性上和C语言非常相近.如果读者有C语言基础,那么本章的内容阅读起来将会非常轻松:如果读者没有C语言基础也没关系,因为本章内容非常简单易懂. Go语言变量的声明(使用var关键字) Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性.在数学概念中,变量表示没有固定值且可改变的数.但从计算机系统实现角

201671010139 2016-2017-2 JAVA 和C语言的语法区别

java和c语言的语法上有很多相似的地方,但也有很多不同. 一,在初始值的区别 在C语言中,是可以不初始化使用的 而在JAVA中,是必须初始化值的 二,在抽象方法或抽象类的区别 C语言的对等语法是"纯虚函数"和"抽象类" Java使用abstract关键字修饰抽象方法或抽象类,final类不能被继承 都使用抽象类作为继承层次中的基类,提供一般概念,由子类实现其抽象方法,且抽象类都不能被直接实例化为对象 E.super关键字的区别 JAVA super关键字,指代父类

黑马程序员 ---- C 语言基础语法

C 语言基础语法 C程序是由函数组成. C程序的入口是一个名字叫做 main 的函数,简称main函数. 不管程序中有多少函数,都是先执行main函数. 1 #include <stdio.h> 2 3 int main(void) 4 5 { 6 7 return 0; 8 9 } 1.编写 2.编译 cc -c 文件名.c 生成 .o 文件 3.链接 cc 文件名.o      // 2.3结合在一起:  cc 文件名.c -o 文件名 4.运行 ./a.out // ./文件名 C语言中

C++语言学习(二)——C++对C语言基础语法的扩展

C++语言学习(二)--C++对C语言基础语法的扩展 C++是基于C语言扩展发展而来的面向对象的程序设计语言,本文将主要讨论C++语言基于C语言扩展的方面. 一.实用性增强 C语言中变量的定义必须在作用域开始的位置进行定义. #include <stdio.h> int main(int argc, char *argv[]) { int i;//定义变量 int j; //使用变量 for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++)

C语言基本语法

C语言基本语法 #include <reg52.h>          //包含文件 #include <stdio.h> void main(void)                //主函数 { SCON=0x52; TMOD=0x20; TH1=0xf3; TR1=1;                        //此行及以上 3 行为PRINTF 函数所必须 printf("Hello I am KEIL. \n");               

Atitit.sql&#160;ast&#160;表达式&#160;语法树&#160;语法&#160;解析原理与实现&#160;java&#160;php&#160;c#.net&#160;js&#160;python

Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python 1.1. Sql语法树 ast 如下图锁死1 2. SQL语句解析的思路和过程3 2.1. lexer作为一个工具,完成了对SQL字符串的切割,将语句转化成一个tokens数组.3 2.2. Parser完成了SQL解析的后序部分:使用一个lexer对象作为工具,切出tokens,然后解析语义,绑定相关的系统接口.3 2.3. 关系数据和XML数据库下其抽象语法树分别为: 如图

C 语言实现多态的原理:函数指针

C语言实现多态的原理:函数指针 何为函数指针?答案:C Programming Language. 可以查阅下,从原理上来讲,就是一个内存地址,跳过去执行对应的代码段. 既然如此,在运行时决定跳到哪个地方去执行特定的代码即可. 一个简单的版本: 以音频解码器作为例子:AAC 解码器,Mpeg解码器,以及其他类型的解码器. 那手动的多态可能会这样实现: U32 audioHandle = AudioDecOpen(int type) { if(type == aac) return aac_ope

Java语言基本语法

Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成,且第一个字符不能是数字: java语言区分大小写: 标志符命名规则:类名首字母大写,变量名和方法名采用驼峰标志法,常量全大写,多个单词之间用“_”隔开,包名全小写: 关键字 在java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”: j