C语言学习小结(1)——初认识C语言

news2024/12/24 12:47:41

一、C语言概念

        C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011128日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

        C语言是一门面向过程的计算机编程语言,与 C++ Java 等面向对象的编程语言有所不同。
其编译器主要有 Clang GCC WIN-TC SUBLIME MSVC Turbo C 等。

二、数据类型

1、类型

数据类型
char字符数据类型%c1字节
short短整型%s2字节
int(ubsigned)整形(无符号整型)%d(%u)4字节
long长整型%d4字节
long long更长整型%d8字节
float单精度浮点数%f4字节
double双精度浮点数%lf8字节

2、常量与变量

(1)、常量

         定义:不能改变的量。

常见常量:

  1. 字面常量(3.14)
  2. const 修饰的常变量(const char a = 1;)
  3. #define 定义的标识符常量(#define SE 4)
  4. 枚举常量(enum)

(2)、变量

        除了常量都是变量。

补:局部变量与全局变量(局部变量优先,但是建议不要使用同一个名称变量)

三、字符串+转义字符+注释

1、字符串

        char a[] = "hello";

        注:字符串的结束标志是'\0'的转义字符。在计算字符串长度时,'\0'是结束的标志,不算在字符串的内容里。

 示例:

int mian()
{
    char arr[] = "hello";
    printf("%d\n",sizefo(arr));//5
    return 0;
}

2、转义字符

        

转义字符
释义
\?
在书写连续多个问号时使用,防止他们被解析成三字母词
\'
用于表示字符常量 '
\“
用于表示一个字符串内部的双引号
\\
用于表示一个反斜杠,防止它被解释为一个转义序列符
\a
警告字符,蜂鸣
\b
退格符
\f
进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\ddd
ddd 表示 1~3 个八进制的数字。 如: \130 X
\xdd
dd 表示 2 个十六进制数字。 如: \x30 0

3、注释

        \\表示注释

示例

#define KEY 100\\表示标识符常量KEY的值为100

四、常见的C语言语句

1、选择语句(if)

int a = 0;
scanf("%d",&a);
if (0 == a)
{
    printf("%c\n","hello");
}
else if (1 == a)
{
    printf("%c\n","world");
}
else
{
    printf("%c\n","您好");
}

2、循环语句

  •         while
    int a = 0;
    while (10 > a)
    {
        printf("%d\n",a);
        a++;
    }
  • for
    int a = 0;
    for (a = 0;a < 10;a++)
    {
        printf("%d\n",a);
    }
  • do...whlie
  • int a = 0;
    do{
        printf("%d\n",a);
        a++;
    }while(a<10);

 3、函数

int Add(int x,int y)
{
    int z = 0;
    z = x + y;
    return z;
}

int main()
{
    int a = 10;
    int b = 20;
    int c = Add(a,b);\\c=30
    return 0;
}

4、数组

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
char ch[5] = {'a','b','c'}\\其余的0填充

5、操作符

单目操作符 

 

 逗号表达式

         exp1, exp2, exp3, …expN(依次计算,输出最后的结果)

下标引用、函数调用和结构成员
[]    ()   .      ->

 6、常见关键字

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)、typedef 顾名思义是类型定义,这里应该理解为类型重命名。

(2)、static

static 是用来修饰变量和函数的
        1. 修饰局部变量 - 称为静态局部变量
        2. 修饰全局变量 - 称为静态全局变量
        3. 修饰函数 - 称为静态函数
void test()
{
	//static修饰局部变量
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

注:1、 static 修饰局部变量改变了变量的生命周期, 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
        2、 一个全局变量被 static 修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

 (3)、define 定义常量与宏

#define Max 100
#define ADD(x,y) ((x)+(y))

7、指针(非常重要)

        后面将会详细讲述。

8、结构体

struct stu
{
    char name[10];
    int age;
}
int main()
{
    struct stu zlc = { "张三",20 };
    printf("%c %d\n",zlc.name,zlc.age);
    struct stu *z = &zlc;
    printf("%c %d\n",z->name,z->age);
    printf("%c %d\n",(*z).name,(*z).age);
    return 0;
}

五、总结

        要想学习好C语言,自己还有很长的路需要走。因此,每一个初学C语言的人都应该每天做完自己安排的任务:

        1、15道编程基础选择题。

        2、2-3道编程题(具体看难度)。

        3、定期写一篇博客。

        4、温故知新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/339936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第3章-进程同步、互斥与信号量(4)

进程同步、互斥与信号量 0 引言 操作系统的并发进程有些是独立的&#xff0c;有些需要相互协作。独立的进程在系统中执行时不受其他进程的影响&#xff0c;而另一些进程需要与其他进程共享数据&#xff0c;来完成共同的任务&#xff0c;这些进程之间具有协作关系。但我们要保…

2023发卡商城源码,最新自助下单彩虹云商城系统免授权无后门源码

# 彩虹自助下单系统 > PHP版本: > 7.0.1 ____ * 去除所有授权验证 * 支持自定义说说接口 * 去除后台广告与更新 * 可自定义易支付接口 ____ >安装教程: > 1、上传源代码到空间或服务器&#xff0c;并确保权限可读写。 > 2、上传完成后&#xff0c;使用浏览器…

vue-cli3打包上线页面空白接口404

使用vue-cli3创建一个vue3ts的项目输入npm run build 打包后生成dist文件夹 把文件夹上传到服务器此时发现页面一片空白&#xff0c;接口显示404 解决这个问题&#xff0c;需要手动在根目录下配置vue.config.js module.exports {publicPath: ./ }然后重新打包&#xff0c;重新…

mycat安装

查看是否安装jdk java -versionjdk安装方法 mycat下载&#xff1a; Mycat安装包1.6.7.3版本 创建新文件夹 mkdir test_mycat上传jar后移动到对应位置 mv Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz ./test_mycat/解压 tar zxvf Mycat-server-1.6.7.3-rele…

【成为架构师课程系列】一线架构师:6个经典困惑及其解法

目录 一线架构师:6个经典困惑及其解法 多阶段还是多视图? 内置最佳实践 架构方法论:3个阶段,一个贯穿

经典进程同步与互斥问题(5)

经典进程同步与互斥问题 1 生产者-消费者问题 1.1 问题描述 生产者-消费者问题是指有两组进程共享一个环形的缓冲池。一组进程被称为生产者&#xff0c;另一组进程被称为消费者。缓冲池是由若干个大小相等的缓冲区组成的&#xff0c;每个缓冲区可以容纳一个产品。生产者进程…

学习802.11之MAC帧格式(一篇就够!)

802.11规范的关键在于MAC&#xff08;媒介访问控制层&#xff09;&#xff0c;MAC位于各式物理层之上&#xff0c;控制数据传输。负责核心成帧操作以及与有线骨干网络之间的交互。 802.11 MAC采用载波监听多路访问&#xff08;CSMA&#xff09;机制来控制对传输媒介的访问&…

操作系统闲谈05——内存管理

操作系统闲谈05——内存管理 一、 内存管理的基本方式 01 段式内存管理 将程序按照逻辑关系划分为段&#xff0c;每个段的大小不等&#xff0c;比如从下到上&#xff08;代码段、数据段、bss段、栈、文件映射、堆等等&#xff09;&#xff0c;然后通过地址映射机制转换为实际…

阻抗匹配之反射波形测量

稍微接触过高速信号的朋友&#xff0c;一定对阻抗匹配和信号反射都有所了解&#xff0c;甚至可以按照公式&#xff0c;把反射波形一路推导出来。但是&#xff0c;纸上得来终绝浅&#xff0c;绝知此事要躬行。 今天&#xff0c;我们就来实测一下信号反射波形&#xff0c;测试环…

【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于知名金融公…

2023年美国大学生数学建模时间、分析及算法代码

美国大学生数学建模——干货2023年美赛比赛日期和时间赛题类型算法代码美赛常见数模问题分类问题判别分析&#xff1a;聚类分析&#xff1a;神经网络分类&#xff1a;优化问题线性规划&#xff1a;非线性规划&#xff1a;整数规划&#xff1a;动态规划&#xff1a;多目标规划&a…

超详细讲解字符串查找函数(保姆级教程!!!)

超详细讲解字符串查找函数&#xff08;保姆级教程&#xff01;&#xff01;&#xff01;&#xff09;字符串查找函数strstr函数strstr函数的使用strstr函数的模拟实现strtok函数strtok函数的使用strtok函数的模拟实现strpbrk函数strpbrk函数的使用strpbrk函数的模拟实现strcspn…

地级市用电、用水、用气数据指标

用电用水量和煤气及液化石油气供应及利用情况可以反映出城市基础设施的建设情况&#xff01;之前我们基于历年的《中国城市统计年鉴》整理了1999—2020年的人口数量数据指标、人口变动数据指标、用地相关数据指标、污染物排放和环境治理相关数据指标、地区生产总值及一二三产构…

【MyBatis】| MyBatis的逆向⼯程

目录 一&#xff1a;MyBatis的逆向⼯程 1. 逆向⼯程配置与⽣成 2. 测试生成的逆向⼯程 一&#xff1a;MyBatis的逆向⼯程 &#xff08;1&#xff09;所谓的逆向⼯程是&#xff1a;根据数据库表逆向⽣成Java的pojo类&#xff0c;SqlMapper.xml⽂件&#xff0c;以及Mapper接⼝…

redis高可用之主从复制

一、前置知识 分布式系统理论基石CAP&#xff1a;consistent-一致性&#xff0c;availability-可用性&#xff0c;partition tolerance-分区容忍性。网络分区&#xff1a;网络断开也叫网络分区&#xff0c;当网络分区发生时&#xff0c;一致性会被破坏&#xff0c;除非牺牲可用…

磁盘管理(8)

磁盘管理 0 引言 速度是影响文件系统性能的主要因素&#xff0c;因此提高磁盘I/O速度的主要途径&#xff1a;选择性能好的磁盘、采用好的磁盘调度算法和设置磁盘高速缓冲区。 1 磁盘的性能 影响磁盘性能的因素&#xff1a; 数据的结构磁盘的类型磁盘访问时间 2 磁盘的结构…

Vscode使用ChatGPT插件

文章目录1.下载vscode插件2.登录ChatGPT&#xff0c;生成APIKeys3.测试4.使用5.其他功能1.下载vscode插件 2.登录ChatGPT&#xff0c;生成APIKeys 地址&#xff1a;https://beta.openai.com/account/api-keys 3.测试 4.使用 &#xff08;1&#xff09;请求简单的模版代码 …

Pycharm 2020 社区版常用快捷键

版本确实有点旧不过快捷键应该不会怎么 变记录一下。 Ctrl Space 基本的代码完成&#xff08;类、方法、属性&#xff09; Ctrl Alt Space 快速导入任意类 Ctrl Shift Enter 语句完成 Ctrl P 参数信息&#xff08;在方法中调用参数&#xff09; Ctrl Q 快速查看文档…

Golang 结构体笔记

结构体是一个自定义的数据类型&#xff0c;是值类型声明结构体type 结构体名称 struct {field_1 typefield_2 type}注意事项字段声明语法同变量&#xff0c;示例&#xff1a;字段名 字段类型字段的类型可以为&#xff1a;基本类型、数组或引用类型创建一个结构体变量后&#xf…

谷粒商城--品牌管理详情

目录 1.简单上传测试 2.Aliyun Spring Boot OSS 3.模块mall-third-service 4.前端 5.数据校验 6.JSR303数据校验 7.分组校验功能 8.自定义校验功能 9.完善代码 1.简单上传测试 OSS是对象存储服务&#xff0c;有什么用呢&#xff1f;把图片存储到云服务器上能让所有人…