C语言的基本概念
1、经典入门:hello world
#include <stdio.h> int main(void)
{
printf("hello world.\n"); return ;
}
注:上面所使用的关键字:include 头文件包含
int 整型,用来表示整数的类型
void 空类型
return 函数返回
2、基本概念:
源文件:源文件即源程序代码文件,C语言源文件后缀名是.c;
头文件:头文件的后缀名为.h,C语言代码由源文件和头文件构成;
关键字:关键字是C语言已经定义好的一些字,这些字在C语言中代表着一些特殊含义,我们必须搞懂每个关键字的所有含义和用法,否则就看不懂C语言程序;
注释:C语言中的注释一般以//开头,或者/* */,注释是给程序员看的,编译器编译程序的时候是忽略注释内容的,所以机器根本看不见注释,也不理注释;
符号:C语言中包含很多符号,如; : , + - * / () [] {} 等等,每个符号都有自己的含义,必须理解它们的含义才能看懂C语言程序;
变量:可以发生变化的量。C语言程序中用变量来进行计算;
函数:函数是C语言的一个基本组成单位,一个C语言程序其实就是由一个或多个函数组成的,每个函数用来完成某项功能,函数也可以调用别的函数来完成其功能。函数的标志是()。C语言中有一个特殊的函数叫
main(),这个函数是整个程序内定的入口,也就是说整个C语言程序是从main()函数开始执行的,其他的函数都是直接或者间接被main()调用的。
3、写代码的步骤:
(1) 使用编辑器(如vi)编辑源代码;
(2) 使用编译器把源程序转化成可执行程序,我们在Linux中使用的编译器一般是gcc;
如:gcc hello.c 对hello.c进行编译后生成可执行文件a.out
gcc hello.c -o hello 对hello.c进行编译生成指定名字的可执行文件hello
(3) 执行编译生成的可执行程序,即./hello;
(4) 执行程序后若发现程序结果不对,这时候就要返回来看源代码哪里不对,然后对其进行修改,再编译执行,再看结果,如此反复直到程序执行结果正确为止;
4、VMWare共享文件夹的使用:
当我们是使用虚拟机VMWare中安装的Ubuntu时,我们一般会在Windows中编辑源代码,而在Linux中来编译和执行源代码,这时就需要在Windows与Linux间进行交互;
在Windows与Linux间进行交互有两种方法:smb服务器(需要自己搭建,较复杂,可以自己在网上寻找相关教程)、VMWare的共享文件夹(仅需简单设置即可使用,下面简单介绍);
建立Windows的共享文件夹:
(1) 先在Windows中创建一个文件夹,切记要使用英文名称;
(2) VMWare中的菜单栏里的VM -> Settings -> Options -> Shared Folders选项卡,右边上侧选择Always Enabled,下面点击Add,next,在打开的选项卡中HostPath项目中浏览选择刚才第一步中创建
的文件夹,下面Name中会自动弹出一个相同的名字,这个名字就是将来Windows中的文件夹在linux虚拟机中的映射文件夹,名字可以改也可以不改。然后一直OK,完成即可。
(3) 在linux中,直接到 /mnt/hgfs目录下,即可找到刚才第二步中Name相同的名字的文件夹,这个目录即是第一步中Windows中目录在linux下的映射。
5、数据类型:
(1) 整型:C语言中的整型对应数学中的整数,整型变量是用来描述一个整数值的,整型变量经过计算后也只能是整数(整型),不可能出现小数(浮点型);
C语言中整形有三种:int 整型
short int 短整型,可简写为short
long int 长整型,可简写为long
#include <stdio.h> int main(void)
{
int a,b,c; // 定义三个了整形变量a、b、c
a = ; // 赋值语句,将=右边的12赋值给左边的变量a
b = ;
c = a + b; // 运算式,把a+b的结果赋值给c
printf("c = %d.\n",c); return ;
}
(2) 浮点型:C语言中的浮点型对应数学中的小数。浮点型有float和double两种,使用方式相同,而表示的范围和精度不同。float表示的范围小,精度低(小数点后6位),
而double表示范围大,精度高。(小数点后16位);
注:printf中打印float或double类型,是用%f,而不是%d;
#include <stdio.h> int main(void)
{
/*
float f1 = 3.14; printf("f1 = %f.\n",f1); // float精度够,正确输出我们需要的值 f1 = 3.141592653; printf("f1 = %f.\n",f1); // float精度不够,所以按照精度取舍了
*/
double f1 = 3.14; printf("f1 = %f.\n",f1); f1 = 3.14159265312345678912; printf("f1 = %2.20f.\n",f1); return ;
}
(3) 字符型:字符型对应ASCII字符。ASCII字符是一种编码,就是用数字编码来表示一个符号的一种方法,本质上说,字符型其实也是整型,只是这些整型数被用来表示一些字符的ASCII码值,所以叫做
字符型。字符型一般用8位二进制表示,无符号字符型范围是0~255;
#include <stdio.h> int main(void)
{
char c1 = 'K'; // 使用%d来打印是打印出字符所对应的ASCII码值,使用%c来打印是打印出字符本身
printf("c1 = %d, c1 = %c\n", c1, c1); c1 = c1 + ; printf("c1 = %d, c1 = %c\n", c1, c1); return ;
}
(4) 有符号数和无符号数:数学中的数都是有符号的,即有正数和负数之分。所以计算机中的数据类型也有符号,分为有符号数和无符号数;
有符号数:整型: signed int 可简写为int
signed long int 可简写为long
signed short int 可简写为short
signed 表示signed int
浮点型: signed float 可简写为float
signed double 可简写为double
字符型: signed char 可简写为char
无符号数:整型: unsigned int 无简写
unsigned long int 可简写为unsigned long
unsigned short int 可简写为unsigned short
浮点型:没有无符号浮点数
字符型: unsigned char 无简写
注:对于整形和字符型来说,有符号数和无符号数表示的范围是不同的;
6、常用运算符:
(1) 数学运算符:与数学中意义相同: + 加号
- 减号
* 乘号
/ 除号
% 取余符号
() 括号里的表达式优先级最高
与数学中的意义不同:= 赋值运算符,不同于数学中的等号。赋值运算符的作用是经过运算后符号左边(左值,一般是一个变量)的值等于右边(右值,一般是常数或变量)的值了
+= x = x + y; 等价于 x += y
-= x = x - y; 等价于 x -= y
*= x = x * y; 等价于 x *= y
/= x = x / y; 等价于 x /= y
%= x = x % y; 等价于 x %= y
#include <stdio.h> int main(void)
{
/*
int a, b, c, d, e; a = 13;
b = 4;
c = 7; d = a + b / c; // 除的优先级高,先除再加
e = (a + b) / c; // 括号里的表达式优先级最高,先算括号里的表达式再算括号外的表达式 printf("d = %d, e = %d.\n", d, e);
*/
int a, b, c, d; a = ;
b = ;
c = a / b; // 除
d = a % b; // 取余 printf("a = %d, b = %d, c = %d, d = %d.\n", a, b, c, d); return ;
}
(2) 判断运算符:== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
(3) 逗号运算符:, 主要是用来分割
(4) ++与--:++ a++; 等价于 ++a; 等价于 a = a + 1; 等价于 a += 1;
-- a--; 等价于 --a; 等价于 a = a - 1; 等价于 a -= 1;
#include <stdio.h> int main(void)
{
int a, b, c, d; a = ;
a++;
printf("a = %d.\n", a); //a = 4;
++a;
printf("a = %d.\n", a); //a = 4;
a += ;
printf("a = %d.\n", a); //a = 4;
a = a + ;
printf("a = %d.\n", a); return ;
}
(以上所述内容为学习朱老师的嵌入式课程后复习笔记所得,目的是自己复习巩固知识,同时把自己学到的知识分享出来。能力有限,水平一般,如有错误,欢迎指正,谢谢!)
2017-02-25 19:15:48
C语言的基本概念的更多相关文章
- javascript语言之 this概念
转载 猫猫小屋 http://www.maomao365.com/?p=837 由于javascript是一种解释性语言,运行时才会解释所有的变量值,所以对于javascript中this所指的对象是 ...
- C语言指针的概念
在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍.为了正确地访问 ...
- C语言函数的概念
在<我们对函数进行了简单的解释,函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识. C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文 ...
- C语言数组的概念
在<C语言数据输出大汇总以及轻量进阶>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <std ...
- SQL语言基础-基本概念
SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的 ...
- c语言数组的概念和指针的加减使用
//数组变量名:就是一个地址:就是数组首元素的地址#include <stdio.h> int main(void) { int age[5] = {10,50,100,22,44}; / ...
- XML(可拓展标记语言)基本概念
一.XML文档基本结构 <?xml version="1.0" encoding="utf-8"?> <students> <st ...
- [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)
本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有 ...
- 《C语言程序设计现代方法》第2章 C语言基本概念
C语言的基本概念 第一个C程序例子. /* pun.c */ #include <stdio.h> int main(void) { printf("To C, or not t ...
随机推荐
- Repeater绑定事件ItemDataBound中获取数据库中数据
protected void rp1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemTyp ...
- Mybatis学习(6)动态加载、一二级缓存
一.动态加载: resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: 如 ...
- LDA 线性判别分析
LDA, Linear Discriminant Analysis,线性判别分析.注意与LDA(Latent Dirichlet Allocation,主题生成模型)的区别. 1.引入 上文介绍的PC ...
- MySQL数据库面试
1. MySql的存储引擎的不同 特点 Myisam BDB Memory InnoDB Archive 存储限制 没有 没有 有 64TB 没有 事务安全 支持 支持 锁机制 表锁 页锁 ...
- chkdsk
通过 Microsoft 的相关帮助就可以明白,例如对D盘进行操作,则: 示例1:chkdsk /? 显示帮助信息. 示例2:chkdsk d: 检查D盘的磁盘状态,报告磁盘错误. 示例3:chkds ...
- bug工具
在线工具:柠檬bug管理--兼顾项目管理 开源工具:PPM Bug 缺陷管理系统 项目管理.bug管理:http://www.bugfree.cn
- Quartz2D 之 绘制文本
1. 基础概念 1.1. 字体(Font) 同一大小.同一样式的字形的集合. 1.2. 字符(Character) 字符表示信息本身,一般指某种编码,如Unicode编码. 1.3. 字形(Glyph ...
- 位运算,算术、逻辑运算详解-java篇
/** * 功能: * 位运算符,原码.反码.补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码.反码.补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取 ...
- 纯代码实现CSS圆角
我这里说的是纯代码,是指的不使用图片实现圆角,图片实现圆角,这里就不说了. 纯代码实现圆角主要有3种方法: 第一种:CSS3圆角 #chaomao{ border-radius:2px 2 ...
- endnote 使用方法
选择需要的期刊格式,复制到收藏夹. 下载安装插件. 鼠标放在需要插入引用的地方. 关键词搜索文献,记得在这之前要把需要的文献保存至endnote online.然后insert就行了.初次安装可能会有 ...