引语:学习一门语言,若是我们提前清楚这门语言的一个轮廓,既有利于提高我们学习这门语言的效率,又有利于我们更好地掌握这门语言。为什么有这样的好处呢?相当于打战之前提前了解一下敌人的情况,然后对敌人进行有目的性研究,提前采取一些相应措施,提高你的对战胜率;也如同你打王者荣耀,喜欢玩对抗路,你要是想在对抗路获得优势,假如你十分清楚自己玩的这个英雄有哪些操作,也了解该游戏一些基本的意识,这样够了吗?No,还不够。你还得了解一下对面这个英雄具有哪些操作,这样你想在对抗路获得优势是妥妥的有底了。所以假如我们提前了解一下C语言这门语言的轮廓,那么我们在后续的学习中,我们将会带着目的性去学习,带动了我们学习的主动性和积极性,则对我们熟练掌握C语言有极大帮助。

目录

  • 什么是C语言

一个简单的C语言程序

基本的数据类型

常量和变量

1.常量

1.1字面常量

1.2const修饰的常量

1.3#define定义的标识符

1.4枚举常量

2.变量

2.1定义变量的格式

2.2变量的命名

2.3变量的分类

字符串+转义字符+注释

1.字符串

2.转义字符

3. 注释

选择语句

if语句

循环语句

while语句

for语句

do ... while语句

函数

数组

1.数组的定义:

2. 数组的下标

3.数组的使用

操作符

算术操作符

移位操作符

位操作符

赋值操作符

单目操作符:

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员

常见关键字(32个)

指针

1.内存

2.指针是什么?

小故事:

指针变量定义的书写格式

结构体

结语


  • 什么是C语言

1972年,贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UXIX操作系统时设计了C语言。C语言是一门计算级程序设计语言,它既有高级语言的特点,又有汇编语言的特点。对于我说,我感觉C语言如同一门人与计算机交流的语言,让计算机更好为我们服务。既然是一门语言,则自然也有属于它自己的一套语法结构。

  • 一个简单的C语言程序

#include <stdio.h>
int main()       //C程序一定从main函数开始执行
{int num;          //定义一个名为num的变量num = 11;         //给num赋一个值printf("My favorite number is %d", num); //使用printf函数在屏幕上输出自己所需要的内容和果return 0;
}

对程序进行一定的说明

  • 基本的数据类型

不同的类型变量需要不同的数据类型去声明

1.有哪些呢?

char        //字符数据类型
short       //短整型
int         //整型
long        //长整型
long long   //更长的整型
float       //单精度浮点数
double      //双精度浮点数

  2.基本数据类型存储空间长度

注意:在不同的操作系统上,C语言中基本数据类型占据的字节长度不同。

这是在32位的操作系统上

#include <stdio.h>
int main()
{printf("%d\n", sizeof(char));printf("%d\n", sizeof(short));printf("%d\n", sizeof(int));printf("%d\n", sizeof(long));printf("%d\n", sizeof(long long));printf("%d\n", sizeof(float));printf("%d\n", sizeof(double));return 0;
}
  • 常量和变量

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。

1.常量

1.1字面常量

例如:19   'a'   "abcdef"

1.2const修饰的常量

//const 修饰的常变量
coint int num= 3;   //这里的num是const修饰的常变量
num= 5;//是不能直接修改的!
#include <stdio.h>
int main()
{const int num = 3;num = 5;return 0;
}

1.3#define定义的标识符

//#define的标识符常量 
     #define MAX 100
  
#include <stdio.h>
#define MAX 100
int main()
{int num;num = MAX;printf("%d", num);
}

1.4枚举常量

定义:enum 枚举类型名{常量1,常量2,常量3,....}

enum sex { MALE,  FEMALE};

2.变量

2.1定义变量的格式

格式:数据类型 变量名

int age ;
float weight ;
char ch ;

2.2变量的命名

  • 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分大小写的。
  • 变量名不能使用关键字。

2.3变量的分类

局部变量
定义:是指在一个函数内部或复合语句内部定义的变量。
全局变量
定义:它是在函数外部定义的变量,也可以是在本程序任何地方创建。
二者的区别
  • 作用域
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
  • 生命周期
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
注意:当变量名即被全局变量声明,又被局部变量声明,优先采用局部变量的值。
                                                        上代码

#include <stdio.h>
int num = 20;    //全局变量
int main()
{int num = 10;   //局部变量printf("%d", num);
}
  • 字符串+转义字符+注释

1.字符串

定义:由双引号引起来的一串字符称为字符串字面值,或者简称字符串。

注意:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串。

例子:“Hello word!\n”

2.转义字符

定义:转变原来的意思。

转义字符

释义

\?

在书写连续多个问号时使用,防止他们被解析成三字母词

\'

用于表示字符常量'

\“

用于表示一个字符串内部的双引号

\\

用于表示一个反斜杠,防止它被解释为一个转义序列符

\a

警告字符,蜂鸣

\b

退格符

\f

进纸符

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\ddd

ddd表示1~3个八进制的数字。 如: \130 X

\xdd

dd表示2个十六进制数字。 如: \x30 0

3. 注释

两种形式

  • //
  • /* ...*/

写代码必须要相应的注释,既有利他人观看,也有利于自己后期检查。 

  • 选择语句

if语句

#include <stdio.h>
int main()
{int num;printf("请输入整数num:");scanf("%d", &num);if (num > 10){num = num * 2;}printf("num=%d", num);return 0;
}

#include <stdio.h>
int main()
{int num;printf("请输入整数num:");scanf("%d", &num);if (num > 10){num = num * 2;}else{num = num * 5;}printf("num=%d", num);return 0;
}
  • 循环语句

  1. while语句

  2. for语句

  3. do ... while语句

用一个题目看看这三个语句的用法吧! 

例题:求1+2+3+...+100的和 


//第一种
#include <stdio.h>
int main()
{int i=0, sum = 0;while (i<=100){sum = sum + i;i++;}printf("%d", sum);return 0;
}//第二种
#include <stdio.h>
int main()
{int i=0, sum = 0;for (i = 1; i <= 100; i++){sum = sum + i;}printf("%d", sum);return 0;
}第三种
#include <stdio.h>
int main()
{int i = 1, sum = 0;do{sum = sum + i;i++;} while (i <= 100);printf("%d", sum);return 0;
}
  • 函数

定义:指完成特定任务的独立程序代码单元。

格式:

返回类型+函数名+(函数参数)

{

....

}函数体

函数的特点就是简化代码,代码复用。使代码模块化,便于修改和后续调整。
#include <stdio.h>
int main()
{int num1=10;int num2=89;int sum = 0;sum = num1 + num2;printf("%d", sum);
}//上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y)
{int c = 0;c = x + y;return c;
}
int main()
{int num1 = 10;int num2 = 89;int sum = 0;sum = Add(num1, num2);printf("%d", sum);
}

数组

1.数组的定义:

数组(Array)是有序的元素序列。

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

2. 数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。数组可以通过下标来访问的。

比如:

int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9

3.数组的使用

#include <stdio.h>
int main()
{int i = 0;int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };for (i = 0; i < 10; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}

  • 操作符

  • 算术操作符

         + - * / %
  • 移位操作符

     >> <<  
  • 位操作符

     & ^ |   
  • 赋值操作符

= += -= *= /= &= ^=  |=    >>=   <<=
  • 单目操作符:

  • 只有一个操作数的操作符。
!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof      操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--          前置、后置--
++          前置、后置++
*           间接访问操作符(解引用操作符)
(类型)       强制类型转换
  • 关系操作符

>
>=
<
<=
!=         用于测试“不相等”
==        用于测试“相等”
  • 逻辑操作符

   &&               逻辑与
   ||                  逻辑或
  • 条件操作符

exp1 ? exp2 : exp3

  • 逗号表达式

exp1, exp2,exp3,...,expn

  • 下标引用、函数调用和结构成员

[]  ()  .   ->

  • 常见关键字(32个)

auto  break   case  char  const   continue  default  do   double else  enum

extern float  for   goto  if   int   long  register    return   short  signed

sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

指针

1.内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地
注意:下图中我给内存单元的地址编号为这种1、2、3、4、5、6、7、8、9......自然数字是方便我们理解,如果你实际操作时,内存单元的地址编号当然不会是我这种简单的自然数咯。

变量的声明

  例子:   int i;

   每次我们要使用某变量时都要事先这样声明它,它其实是内存中申请了一个
名为 i 的整型变量宽度的空间.(在32位操作系统中,i占4个字节)

若i=10;则这四个内存单元存入10这个数据

printf("%p",&i);   若进行这样的代码操作,显示屏将会出现首地址1,因为我给i的首地址编号为1,当然你在实际操作时不可能是1。

现在我给你看看实际操作的代码和图片

2.指针是什么?

  • 小故事:

假如有一天你在某个地方,突然你想去当地的西湖公园玩,但是你不知道去得路,不过可能是上天的眷顾,你的旁边恰好有一块路牌告诉你如何去西湖公园,上面写着直走800米再向右走250米到西湖公园,于是按照路牌上的位置找到了西湖公园,在里面玩你想要玩的东西,哈哈哈!

下面我来声明一个指向整型变量的指针的语句吧!

int *pa;  //声明指针变量pa,既然是变量,则会占一定宽度的内存空间

pa是一个指针,如同我们上面小故事里面的路牌(路牌里有西湖公园的地址),pa有空间则可以存储一个int类型变量的地址,*pa表示一个通过这个变量的地址找到这个变量调用里面的值的过程。

pa=&i;//将i的放到指针变量pa中

*pa//调用i的值,10

printf("%d",*pa);//屏幕上打印出10

#include <stdio.h>
int main()
{int i = 10;int* pa;pa = &i;printf("i的地址:%p\n", &i);printf("地址:%p\n", pa);printf("值:%d", *pa);
}
  • 指针变量定义的书写格式

1.数据类型*  指针变量名

int* pa;

2.数据类型  *指针变量名

int *pa;
  • 结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。
这里只能使用结构体来描述了

#include <stdio.h>
struct student
{char name[20];  //名字int age;      //年龄char sex[5];    //性别char number[20];  //学号
};int main(){struct student s = { "lisi",18,"nan","21131306033" };printf("%s %d %s %s",s.name,s.age,s.sex,s.number);return 0;}

结语

这是本人对C语言刚开始的基本认识,如果对你有帮助,谢谢你的阅读;如果你觉得还有不足,请你多多指教!还有希望得到你的一个免费的赞!

初识C语言,了解一下C语言轮廓相关推荐

  1. r语言清除变量_R语言(1)初识与数据结构

    点击上方蓝字,记得关注我们! a picture is worth a thousand words! 一,R语言简介 1,R语言的发展 上世纪90年代初,新西兰奥克兰大学 Ross Ihaka 和 ...

  2. 040_初识 web 前端 HTML 超文本标记语言

    文章目录 1. web前端开发技术 2. HTML 页面结构 3. HTML 标签 3.1 文本标签 3.2 换行标签 3.3 列表标签 3.3 div 和 span 标签 3.4 图片标签 3.5 ...

  3. python是一种蟒蛇使用的语言_python树莓派系列教程一:初识大蟒蛇 python(python语言环境搭建篇)...

    作者:剑若游龙微信公众号<科学是什么东东>,欢迎关注 作者微信号,欢迎与我交流 网络爬虫,人工智能,机器学习,如何让计算机理解能力更强,如 何让你手中的机器人更人性化,更聪明? 不管是大人 ...

  4. 【初识Java】Java与C语言对比学习

    ✍️大家好,我是枫晨,从今天开始进入Java专栏的学习,近期会倾泻式更新,分享在Java学习中自己的一些见解,以及带着大家去学习一些难点. 同时这里分享一下我的其他专栏: C语言专栏:C语言持续更新中 ...

  5. 【C语言】初始C语言系列 代码详解 _ 编程入门 _【内附代码和图片】_ [初阶篇 _ 总结复习]

    [前言] 本篇文章为初始C语言部分,C语言是编程的入门语言,所以也说是编程入门: 学好C语言的入门内容,才能真正的入门编程,而C语言的学习对于刚入门的同学还是有一些难度的,需要踏踏实实的自己去理解. ...

  6. 新手该如何快速上手C语言——什么是C语言?

    文章目录 前言 初识C语言 什么是语言 什么是C语言 计算机语言的发展史 编译器的讲解和基本使用 第一个C语言程序 main函数的书写格式 前言   感谢各位大佬百忙之间过来观看,目前博主准备持续更新 ...

  7. r语言 断轴 画图_R语言基础画图/绘图/作图

    R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...

  8. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  9. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

  10. 为什么可以说Java语言是准动态语言?

    什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...

最新文章

  1. Hadoop(Install)
  2. ArcFace - 人脸识别
  3. 宝塔面板使用阿里云ssl证书
  4. html select显示树形菜单_HTML标签总结
  5. 【机器学习基础】前置知识(一):数学符号及希腊字母
  6. 【普通の随笔】3.26
  7. Intellij IDEA 使用Debug模式运行非常慢
  8. Spring-02-AOP切面编程
  9. 计算机的新技术未来发展趋势论文,计算机最新技术发展趋势毕业论文
  10. 分库分表中间件常见方案对比分析
  11. Datablau产品之Kubernetes(K8S)部署
  12. 阿里全球数学竞赛落幕:全球最强73人出炉,北大获奖人数第一,还“炸出”各路世界大牛...
  13. imx7d 通过imx7d-sdb.dts 添加 spi设备
  14. 不定宽高,实现盒子左右垂直居中
  15. 计算机网络实验——虚拟局域网VLAN配置
  16. python项目案例开发pdf-python项目开发案例锦集 pdf|消费金融公司概念股
  17. 什么是计算机的网络体系结构,什么是网络体系结构-计算机网络.DOC
  18. centos安装matlab2018的步骤(基本是借鉴的但是会有些自己的解释及补充)
  19. 黑客新型攻击技术,使用智能灯泡窃取数据
  20. 依赖树(dependecyTree)-语义边、两个词语之间的依赖边路径

热门文章

  1. 不要迷失在技术的海洋中
  2. Veri3.SDF后仿真时序检查
  3. 移动硬盘在macos上可被识别,在win10无法显示盘符
  4. 在 E:\db\Custom\201610211635.bak 上读取失败: 38(已到文件结尾。) (Microsoft SQL Server,错误: 3203)
  5. JVM系列五JVM监测工具[整理中(转)
  6. 常见问题 html5页面模板,html5+css3实现403程序报错页面模板特效
  7. PCF8591 ADC 模数转换模块使用
  8. 【Unity3D基础2-9】Unity3D烘焙系统的使用
  9. 1行Python代码识别身份证信息,还能自动告警,YYDS
  10. IOS9新特性慢慢整理