第一个程序

#include <stdio.h>
int main(){
printf("Hello World");
}

变量与常量

  1. 变量类型:整型【int】、字符型【char】、单精度【float】和双精度【double】
  2. 整型变量
    1. 整型的数据在32位操作系统,所占的计算机内存位数为8位
    2. 该类型变量的定义格式如下
int 变量名=初始化值;//定义并初始化整型变量
    1. 在整型定义格式中、变量类型标识符int必须置于变量名之前
    2. 用户定义整型变量时,也可以不用对其进行初始化操作
    3. 当需要定义多个整型变量时,可以用,将各个变量名隔开
int a,b,c;//定义整型类型的数据a,b,c
int m=10,n=10;//定义并初始化整型变量m,n
  1. 字符型:
    1. 通常是用于定义字符型数据的
    2. 该类型的变量不仅可以存储单字符数据,还可以多字符数据或字符串
    3. 用户一般直接使用字符变量标识符char就可以定义字符变量
char变量名='初始化字符';//定义并初始化单个字符
char变量名[10]="初始化字符串";//定义并初始化字符串
    1. 若使用单字符数据对变量进行初始化,一定要用单引号将初始化数据括起来
    2. 使用字符串初始化变量时,必须将变量定义为字符数组,并且用双信号将初始化数据括起来
  1. 单精度
    1. 单精度数据类型用float表示,该类型的数据在32位操作系统中所占的计算机内存位数为16位
    2. 通常情况下,只有在进行科学计算时要使用单精度类型的数据
    3. 用户在程序中,使用单精度变量标识符float定义一个f
float f=1.2545;//定义并初始化单精度变量f
  1. 双精度
    1. 双精度数据类型用double表示
    2. 该类型的数据在32位操作系统中,所占的计算机内存位数为32位
    3. 与单精度类型的数据一样,在进行编程时,若需要进行科学计算或多位小数计算,则需要使用双精度类型的数据
  1. 实际编程中,变量定义应当严格遵循其命名规则
    1. 变量名要有良好的可读性
    2. 长度不宜过长
    3. 用户还可以使用下划线和前缀字符对变量进行标识
    4. 变量命名时,不能使用特殊符号作为变量名的前缀,也不能使用C语言中的关键字作为自定义变量的名称
  1. 局部变量是指在一些程序段中所定义的变量,其作用范围有很大的限制,一般只在一堆大括号之间有作用
    1. 当用户在变量定义的代码段之外调用该变量时,是不允许的
    2. 这也容易导致定义的变量重名或者引用未定义的变量而发生错误
  1. 全局变量:作用域是整个程序
    1. 当程序运行完毕退出时,全局变量才会被自动删除,全局变量的生命周期与程序的生命周期是相同的
    2. 使用全局变量时,需要根据实际情况确定全局变量的作用范围
  1. 使用变量:在程序中,可以使用符号=位已经定义的变量进行赋值操作
  2. 输出变量中的数据【printf语句】输出格式
printf("格式化字符串",变量名);//输出函数printf的原型
  1. 将定义的变量值输出
#include <stdio.h>//包含头文件
main()//主函数开始
{
int score=70;//定义并初始化整型变量
char name[]="学习C语言";//定义并初始化字符数组
float f=12.254545;//定义并初始化单精度变量
double dob;//定义双精度变量
dob=15.526646546542;//初始化双精度变量
printf("输出整型数据:%d\n",score);//输出各个变量值
printf("输出字符串:%s\n",name);
printf("输出单精度数据:%f\n",f);
printf("输出双精度数据:%1f\n",dob);
return 0;//程序正常结束
}
  1. 定义常量:常量是指变量值在初始化后,不能够再进行更改【const】
    1. const的使用方法
const int age=10;//定义并初始化整型常量
const char ch='C';//定义并初始化字符型常量
    1. 实际上,关键字const还可以用于C语言函数及其参数中

C语言运算符

  1. 该运算符使用=进行标识
变量标识符=变量初始化值;//使用赋值运算符初始化变量
  1. 算数运算符
    1. 加法运算符:实现两个数据之间的加法运算操作
数据1+数据2;//加法运算符的使用格式
    1. 在使用格式中,数据1和数据2的类型必须是相同的。否则,必须通过强制类型转换将两个数据的类型转换成相同类型以后,才能够使其计算的结果正确。
    2. 减法运算符:实现两个数据之间的减法运算操作
数据1-数据2;//减法运算符的使用格式
    1. 乘法运算符:实现两个数据的乘法运算
数据1*数据2;//乘法运算符的使用格式
    1. 除法运算符:使用符号/标识,表示计算两个数据之间的商
商=数据1/数据2;//除法运算符使用格式
  1. 逻辑运算符:实现数据间的逻辑运算操作
    1. 逻辑与和逻辑或的运算规则

    1. 逻辑非的运算规则

  1. 关系运算符:两个表达式或者变量进行比较
    1. 大于(>)
    2. 小于(<)
    3. 大于等于(>=)
    4. 小于等于(<=)
    5. 不等于(!=)
    6. 等于(==)
  1. 三目运算符:唯一一个有三个变量同时参与运算的运算符
<表达式1>?<表达式2>:<表达式3>//三目运算符使用格式
    1. 表达式1表示三目运算符的运算条件
    2. 程序将该运算条件的真假,对后面的取值进行选择
    3. 如果表达式1的值为真,则三目运算符的运行结果为表达式2,否则运算结果将为表达式3
  1. 位运算符:针对每个二进制数据位
    1. 按位与(&)
    2. 按位或(|)
    3. 按位异或(^)
    4. 左移(<<)
    5. 右移(>>)
    6. 位运算符具体作用

  1. 单目运算符:该运算符只被用于单个数据的运算,参与运算的数据只有一个
    1. 前置单目运算符是指运算符在数据之前,即使用格式运算符运算数据
    2. 后置单目运算符:常用的前置单目运算符也可以将运算符放到运算数据之后,作为后置单目运算符使用

标准输入/输出

  1. scanf概述
    1. C语言中最为常用的标准输入函数
    2. 主要是从计算机的输入流中获取相应的数据,并将获取到的数据保存在用户指定的变量或者内存中
    3. 用户在使用函数scanf时,需要使用输入控制符控制数据的获取
int scanf(const char *format,ch);//输入函数scanf的使用原型
    1. 当函数调用成功时,将返回获取到数据的个数
    2. 参数format表示了格式控制符,主要用于控制获取数据的类型,当然,该参数也可以是一个格式空支付的组合字符串

    1. 参数ch表示了一个已经定义的变量,即将获取到的数据放到该参数所指向的变量地址中进行保存
  1. 用户可以使用关键字include将指定的头文件包含到程序中,并且标准输入函数scanf定义和实现均包含在头文件stdio.h
#include <stdio.h>//包含相应的头文件
  1. 用户在包含头文件时,若头文件为系统定义的,则需要使用尖括号“<>”将文件名括起来;若头文件为自定义的,则使用双引号将文件名括起来。
  2. printf概述
    1. 参数format表示输出格式控制符,主要是控制输出字符的格式
    2. 参数ch表示将要输出的变量
  1. getchar()
    1. C语言中用于获取单个输入数据的功能的函数
    2. 当用户在程序中输入一串字符时,该函数也只能够获取到输入的第一个字符数据,而后面的字符将被省略
int getchar(void);//获取单个数据
    1. 如果该函数调用成功,则将返回获取到的数据;否则,将返回0
  1. 使用putchar()
    1. 该函数只能够向计算机输出设备输出一个数据,并且该函数也可以在循环结构中使用
int putchar(int c);//输出单个数据
    1. 在该函数,含有一个参数c,表示存放输出数据的变量标识符。如果该函数调用失败,将返回错误标识符EOF

C语言控制结构

  1. if...else结构的运行原理

  1. while循环流程图

  1. do...while循环结构执行流程图

  1. 关键字break常被用于循环功能代码中,其主要作用是调处并终止循环结构的运行
  2. 关键字continue的具体功能比较丰富,即终止用户所指定的本次循环,但不会跳出循环结构,从而可以继续执行下一个循环
  3. switch...case开关结构流程图

  1. 转义字符是指C语言中能够实现特定功能的输出控制字符

  1. 数据类型输出控制符包括格式控制符和格式字符
  2. 常用的格式字符

函数

  1. 函数包括参数和返回值
    1. 参数是用于向函数内部传递数据的
    2. 返回值是将函数处理后的结果传递到函数外部
  1. 函数在定义时,也需要具有一定的定义格式。在定义格式中,包含函数的名称、参数类型、参数个数和函数返回值
返回类型 函数名(参数类型 参数1,参数类型 参数2);//函数定义
  1. 函数返回值和参数类型的具体取值及其意义

  1. 根据函数参数的使用位置不同,其种类有实参和形参两种
    1. 实参是在用户调用函数时,传递给函数的实际参数
    2. 形参则是在函数定义时,所设置的形式参数,该类型的参数并不具有实际意义,只是一个标识
    3. 用户使用函数形参实现自定义函数的定义
void add(int a,int b);//自定义函数
    1. 当然,用户也可以在函数定义时,只使用数据类型作为函数形参
void add(int,int);//使用数据类型作为函数形参
  1. 函数的返回值可以将函数内部的运算结果等变量值传递到函数外部
  2. 函数返回值就是函数内部与外部通信的一个桥梁,而函数参数是函数外部与内部通信的桥梁
  3. 变量的作用域和生存周期是其定义位置所在的一对大括号{}之内
  4. 根据自定义函数的调用位置和调用顺序的不同,其调用方式也会有所不同
  5. 自定义函数的直接调用,优点在于调用简单、方便、直观。但是,在需要多次调用函数实现一个功能的时候,用户就需要显示地多次调用该函数,这种调用方式将容易造成代码量的增加以及程序运行的不可控制性
  6. 函数的递归调用是指在一个自定义函数中再嵌套使用相同函数,以实现循环调用相同函数的功能

【理论积累】C语言基础理论知识【第一版】的更多相关文章

  1. java基础理论知识的一些总结

    在学习Java初期,由于我们是刚开始接触Java,我们不仅需要牢牢掌握Java的基础理论知识,来为我们后面对Java更深层次的学习打好基础,而且我们需要养成编程人的思想习惯.来我们一起来探索Java基 ...

  2. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  3. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  4. 01-C语言基本知识

    目录: 一.C语言基本知识 二.C语言概述 回到顶部 一.C语言基本知识 1 语言背景 1946年,美国冯·诺依曼第一台计算机. 四大部分:中央处理器(控制器,运算器),存储器,输入设备,输出设备. ...

  5. Golang 入门系列(三)Go语言基础知识汇总

    前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...

  6. 用几分钟了解R语言入门知识

    第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)

  7. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  8. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  9. C语言基础知识-程序流程结构

    C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...

  10. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

随机推荐

  1. 双系统下利用MbrFix.exe卸载LINUX系统

    前言:  不少同学笔记本都装的有双系统,一般都是LIUNX和WINDOWS的两个系统(由于以前对电脑各种无知)装了双系统,再次,小编就不在阐述双系统地各种不便,再次就强调一下,假若要卸载LINUX的话 ...

  2. Oracle 新建序列值

    create sequence MSG_OUTBOX_ID_SEQ minvalue maxvalue start increment cache ;

  3. [改善Java代码]建议40:匿名类的构造函数很特殊

    建议40: 匿名类的构造函数很特殊 在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行 ...

  4. javascript MD5

    var MD5 = function (string) { function RotateLeft(lValue, iShiftBits) { return (lValue<<iShift ...

  5. Android适应方案汇总(三)

    在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...

  6. tensorflow Tensorboard可视化-【老鱼学tensorflow】

    tensorflow自带了可视化的工具:Tensorboard.有了这个可视化工具,可以让我们在调整各项参数时有了可视化的依据. 本次我们先用Tensorboard来可视化Tensorflow的结构. ...

  7. python(31)——【sys模块】【json模块 &amp; pickle模块】

    一.sys模块 import sys sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit() #退出程序,正常退出时exit(0) sys.version #获取pyt ...

  8. Block 循环引用(中)

    不会造成循环引用的block 大部分GCD方法 dispatch_async(dispatch_get_main_queue(), ^{ [self doSomething]; }); 因为self并 ...

  9. c 结构体的队列

    头文件 lsg_queue.h #pragma once #include<stdbool.h> /* 链式栈接口的定义头文件 */ #define true 1 #define fals ...

  10. .aspx(或.asp)文件与.html(.htm)文件的区别与联系

    由于都是用于描述网页文档的文件,自学asp.net起就对两者之间的关系很好奇 主要的区别在于,当用户请求页面时,它们在服务器的端的处理不同 下图解释客户端请求页面时,服务器端的处理流程: .html文 ...