c语言开篇---跟着视频学C语言

这篇具有很好参考价值的文章主要介绍了c语言开篇---跟着视频学C语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

标识符

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

标识符必须声明定义,可以是变量、函数或其他实体。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

Int是标识符吗?

不是,int是c语言关键词,不是随意命名的

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

C语言关键词如下:
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
常量

不需要被声明,不能赋值更改。

printf函数

printf是由print打印和format格式,占位符打印

定义写在<stdio.h>当中。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
整数数据类型

定义不同整型原因:占用内存大小不一样,表示数据范围不一样。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

char、short、int、long、longlong占用字节和数值范围:

c语言并未规定数据类型的大小范围,具体实现交由编译器和平台决定

sizeof(测量实体占用字节大小)

占用字节越大可表示范围越大。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

不要最高位作为符号位 unsigned。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

1~5以看完。浮点类型

浮点类型float

%d占位符用于整型,%f占位符用于浮点型。

float至少能表示6位有效数字。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
浮点类型double

比float精度更高的类型,双精度浮点型double。

浮点类型所占字节

浮点类型,精度越高,范围越大,所占字节越大。

float 4;double 8字节。

变量常量

变量:可以改变并且有可能变化的。

常量:没有变化且不能变化的。

声明变量:

标识符:由自己命名的标志,表示变量、函数或其他实体的名称。

标识符命名规则:1、只能由大小写英文字母、数字或下划线组成。

2、标识符不能以数字开头。

3、标识符不能是已有关键字。

关键词:C语言标准规定,有特殊意义和用途,可以直接在程序中被使用。比如:short、int、long 、float、double。

声明变量公式:【数据类型+标识符名+分号】。先声明在使用!!!

变量初始化和赋值方法:

1、变量声明后,立即初始化。

int a=100;
printf("%d\n",a);

2、变量先声明在变量赋值。

int a;
a=100;
printf("%d\n",a);

注:变量可以多次赋值,但不能多次初始化。

常量

字面常量无需声明,编译器可判断类型。

符号常量:

#define 符号常量  值
字符类型变量与常量

字符常量是由单引号包括的。

例如: 'a'

占位符

整数类型 %d
浮点类型 %f
字符类型 %c

字符类型占用空间:

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

字符变量:char

字符和数值存在一一对应的映射关系,被称为美国信息交换标准代码即ASCII码。

字符类型仅需要一个字节可以正常存储。

字符类型就是整型类型
字符类型只占用一个字节
字符类型命名为char
\n为换行符,\n表示结束一行打印,并从下一行开始打印。

例题:

定义一个字符变量letter,将其初始化为大写字母A。通过ASCII中的关系,将大写字母A,变成小写字母A,并将小写字母A打印出来。

#include <stdio.h>
int main ()
{
char letter ='A';
letter =letter+32;
printf("letter =%c",letter);
return 0;
}

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

数值0:用于标识字符串结束。

转义字符:\

\数值(八进制):转义字符
printf("hello\0world");
打印hello
printf("\110\145\154\154\157");
也是打印hello
printf("hello\12world");
打印hello
world
效果等同于\n
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
printf

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

无符号整型占位符:%u

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
精度
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
最小字段宽度
使用最小字段宽度
如果指定标志0,则会用0来补齐最小宽度。

6~10

scanf(用于输入)

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

_CRT_SECURE_NO_WARNINGS

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

scanf将输入的字符串按照对应的转换规范进行转换。

转换完成后的二进制,将依次存放到后续参数的变量地址中。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

输入字符串
#include <stdio.h>
int  main()
{
char str[10];
scanf("%s",str);
printf("%s",str);
return 0;
}
输入字符
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
printf("%d  %c\n",c,c);
return 0;
}
运算符12

指针

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
取地址运算符&
&数据对象
获取数据对象首地址和所需储存空间大小
指针类型
目标数据类型 * 变量名    声明指针

指针类型的值是目标数据对象首地址。

数据对象的空间大小存储在哪?c语言开篇---跟着视频学C语言,C语言基础知识,c语言

首地址可以复制,指针类型改变,导致数据长度改变,因此无法正确复制。
指针类型是通过值来保存目标数据对象的首地址,通过类型本身来标记目标数据对象的空间大小。
取值运算符 *
*指针
根据指针中存储的首地址和空间大小找到目标数据对象。
指针所占用的字节大小,还和编译器或者编译配置有关。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

指针访问数组

第一个元素获取数组首地址。

取值运算符的优先级高于算术运算符。

数组名获取数组首地址。

数组名出现在表达式中,数组名将会转化为指向数组第一个元素的指针。
比如:arr+1等同于&arr[0]+1
例外:1、对数组名使用sizeof时
     2、对数组名使用取地址运算符&时

下标运算符最终会展开为指针的形式。

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

指针作为参数进行传递

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

指针的指针(多级指针)
int  *数据对象的指针被称为【二级指针】
多维数组
指针数组  int*  pB[10]
数组指针  目标类型 (*变量名)[元素个数]

数组指针的移动和取值

35

字符串处理函数
#include "string.h"

strlen:获取字符数组中字符串 的长度

strcat:字符串拼接函数,将源字符串拼接到目标字符串后面

strcpy:字符串复制函数,将源字符串复制到目标字符串中

strcmp:字符串比较函数,,比较两个字符串,一致返回0 ,不同1、-1

37

指针实现字符串处理函数
#include <stdio.h>
size_t  mstrlen(const  char  *str)
{
if(str=NULL)
{
return 0;
}
size_t  len =0;
while(*str !='\0')
{
len++;
str++;
}
return  len;
}
​
int main()
{
size_t  len;
len =mstrlen(NULL);
printf("%d\n",len);
​
len =mstrlen("");
printf("%d\n",len);
​
len =mstrlen("HELLO");
printf("%d\n",len);
return 0;
}
#include "stdio.h"
​
char * mstrcat(char *  destination ,const char * source)
{
if(destination == NULL)
{
return NULL;
}
if(source == NULL)
{
return destination;
}
char *ret =destination;//保存字符串首地址
while (*destination !='\0')
{
destination++;
}
while(*source !='\0')
{
*destination =*source;//把source追加到destination后面。
destination++;
source++;
}
*destination ='\0';
return ret;
}
int mstrcmp(const char *str1,const char *str2)
{
if(str1==NULL && str2 == NULL)
{
return 0;
}
if(str1 !=NULL && str2 ==NULL)
{
return 1;
}
if(str1 == NULL && str2!==NULL)
{
return -1;
}
int  ret =0;
while (1)
{
if(*str1 !=*str2)
{
if(*str1 > *str2)
{
   ret = 1;
}
else
{
ret =-1;
}
break;
}
else
{
if(*str1 == '\0' &&  *str2 == '\0')
{
break;
}
str1++;
str2++;
}
}
return ret;
}

初识结构化数据c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
指向结构的指针

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言
联合 unionc语言开篇---跟着视频学C语言,C语言基础知识,c语言
结构体与联合体

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

内存对齐!

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

联合共用。

枚举enum

枚举会从0开始,依次递增。

若想从1开始递增
enum msgType{
eInteger=1;
eFloat,
eString
};
标识符的作用域

内层作用域将覆盖外层作用域。

预处理指令
取消宏定义
#define NUM 1
#undef NUM
#define NUM  3
typedef关键词

定义数据类型别名

经常用于结构

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

typedef没有创建任何新类型,只是为某个已存在的类型增加了一个方便的别名

typedef与#define的区别

#define可以为值设置一个别名,而typedef不行
例如:  #define  PI  3.1415926
#define由预编译器处理,并且修改替换代码,typedef不受预处理影响,在编译时由编译器处理
#define也能为类型定义别名,但某些情况下,使用typedef更合适
例如:   typedef  char  *STRING
        STRING   name1,name2;
        

整型类型的别名无需自己定义,编译器会根据平台的整型范围大小,设置对应的别名。头文件:stdint.h

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

printf的转换规范如何保证可移植性?

头文件 inttype.h
​
预处理中的分支结构
#if  常量表达式
在编译前,由处理器处理,根据分支走向,保留需要走向分支的代码,删除被跳过分支的代码。
#if
#else
#elif
​
#ifdef
#ifndef
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
#ifdef #ifndef

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

c语言开篇---跟着视频学C语言,C语言基础知识,c语言

还可以使用#if defined(宏)或 #elif defined(宏)

#include
#include <文件夹>
在编译器的包含目录中搜索文件,< >编译器自带文件,在编译器的包含目录中
​
#include "文件名"
先在当前目录中搜索文件,再到编译器的包含目录中搜索文件
多文件代码
c语言开篇---跟着视频学C语言,C语言基础知识,c语言
存储类别

声明在代码块内的任何变量,都属于自动存储类别的变量。

指明一个变量属于自动存储类别  auto

n的生命期----数据对象从创建到销毁之间。数据对象存在的周期。

n的作用域----标识符对数据对象指代关系存在的区域,它是一种关联关系。

自动变量拥有块内作用域及生命期。---局部变量

文件操作

fopen文章来源地址https://www.toymoban.com/news/detail-704612.html

到了这里,关于c语言开篇---跟着视频学C语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音视频之旅 - 基础知识

    像素 像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素 分辨率 图像(或视频)的分辨率是指图像的大小或尺寸。我们一般用像素个数来表示图像的尺寸。比如说一张1920x1

    2024年02月04日
    浏览(42)
  • FFMPEG视频编码的基础知识

    抛砖引玉 首先我们先计算以下  1080P   60fps  的视频文件大小: 假设是RGB每色8位(也就是一个像素24位) 一帧画面像素数量:1920 * 1080  ~ 200万 一个像素: 3 字节 一帧画面 :  1920 * 1080 * 24(位像素)/8(1字节8位)/1024(1KB=1024B)/1024(1MB=1024KB)~ 5.9MB 一秒视频:    5.9MB * 60

    2024年02月16日
    浏览(44)
  • 音视频基础知识——素材理解

    素材是媒体内容生产中一切生产资料的集合,包括不限于视频、音频、图片、字幕等形式。 素材通过统一的协议把原始的数据有序组织起来,便于编辑与管理。比如一般的素材是由一个物理文件及其各类属性构成,在对素材进行剪辑处理时,不用改变源文件中的任何内容,通

    2024年02月01日
    浏览(54)
  • Ffmpeg视频压制的基础知识

    码率设置 指定文件大小 -fs 15MB 最大值为15MB crf质量模式压缩 CRF(Constant Rate Factor): 范围 0-51: 0是编码毫无丢失信息, 23 is 默认, 51 是最差的情况。相对合理的区间是18-28. 值越大,压缩效率越高,但也意味着信息丢失越严重,输出图像质量越差。 分辨率 文件拖拽压缩法 crf=22的同

    2023年04月08日
    浏览(36)
  • 【STM32】基础知识 第五课 C 语言基础知识

    stdint.h 是从 C99 中引进的一个标准 C 库的文件. 路径: “D:MDK5.34ARMARMCCinclude” 运算符 含义 运算符 含义 按位与 ~ 按位取反 | 按位或 左移 ^ 按位异或 右移 按位与: num1 运算符 num2 结果 0 0 0 1 0 0 0 1 0 1 1 1 按位或: num1 运算符 num2 结果 0 | 0 0 1 | 0 1 0 | 1 1 1 | 1 1 按位异或: num1 运算符

    2024年02月13日
    浏览(69)
  • 音视频入门基础理论知识

    本节介绍了音视频的基本原理知识以及编码相关概念。 视频(Video) 泛指将一系列静态影像以电信号的方式加以捕捉、 纪录、 处理、 储存、 传送与重现的各种技术。 连续的图像变化 每秒超过 24 帧(frame,fps) 画面以上时, 根据 视觉暂留原理 , 人眼无法辨别单幅的静态画

    2024年02月09日
    浏览(84)
  • Go语言基础知识(一):基础介绍

    Go 语言又称 Golang,由 Google 公司于 2009 年发布,近几年伴随着云计算、微服务、分布式的发展而迅速崛起,跻身主流编程语言之列,和 Java 类似,它是一门静态的、强类型的、编译型编程语言,为并发而生,所以天生适用于并发编程(网络编程)。 目前 Go 语言支持 Windows、

    2024年02月13日
    浏览(50)
  • 音视频基础知识-时间戳的理解

    问题背景: 凡是和流媒体和音视频打交道,时间戳基本是一个必须深刻理解的概念。你会在各种各样的传输协议和封装格式中看到这个东西,而且表现形式还不一样。其次这个概念会涉及到音视频播放的同步问题,也会影响音视频播放的控制问题。前者说的是音画同步,后者

    2023年04月08日
    浏览(43)
  • Ruby语言基础知识

    Ruby是一种简单快捷的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发,遵守GPL协议和Ruby License。它的灵感和特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。 以下是Ruby语言的一些特点: 面向对象:在Ruby中,一切皆是对象。这意味着所有的数据和

    2024年02月07日
    浏览(33)
  • 1.C语言——基础知识

    C语言的编程框架 C 标识符是用来 标识 变量、函数,或任何其他用户自定义项目的 名称 。 规定:C语言的的标识符由 数字 , 字母 , 下划线 构成,但 不能以数字开头 。 可以作为标识符的 mohd ,  zara ,   abc ,  move_name ,  a_123 myname50 ,   _temp ,  j ,   a23b9 ,   retVal 不可以

    2024年01月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包