百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

C语言之核心语法

wptr33 2025-02-26 14:06 16 浏览

C语言是一种高效、灵活的编程语言,广泛应用于系统编程、嵌入式开发等领域。以下是C语言的核心语法点,适合初学者快速掌握。


1.数据类型

C语言提供了多种基本数据类型,用于存储不同类型的数据。

数据类型

描述

示例

int

整型(通常4字节)

int a = 10;

float

单精度浮点型(4字节)

float b = 3.14;

double

双精度浮点型(8字节)

double c = 3.14159;

char

字符型(1字节)

char d = 'A';

void

无类型

用于函数返回值或指针


2.变量与常量

(1)变量

变量是存储数据的容器,必须先声明后使用。

语法

数据类型 变量名;

示例

int age = 25;
float salary = 5000.50;

(2)常量

常量是不可修改的值,使用 const 关键字定义。

语法

const 数据类型 常量名 = 值;

示例

const float PI = 3.14159;

3.运算符

C语言支持多种运算符,包括算术运算符、关系运算符、逻辑运算符等。

运算符类型

运算符

示例



算术运算符

+、-、*、/、%

int result = a + b;



关系运算符

==、!=、>、<

if (a > b) { ... }



逻辑运算符

&&、||、!

if (a && b) { ... }



赋值运算符

=、+=、-=

a += 5;



位运算符

&、|、^、~、>>、<<

int c = a & b;




4.控制语句

(1)条件语句

  • if 语句
if (条件) {
    // 条件为真时执行
}
  • if-else 语句
if (条件) {
    // 条件为真时执行
} else {
    // 条件为假时执行
}
  • switch 语句
switch (表达式) {
    case 值1:
        // 执行代码
        break;
    case 值2:
        // 执行代码
        break;
    default:
        // 默认执行代码
}

(2)循环语句

  • for 循环
for (初始化; 条件; 更新) {
    // 循环体
}
  • while 循环
while (条件) {
    // 循环体
}
  • do-while 循环
do {
    // 循环体
} while (条件);

5.函数

函数是C语言的基本模块,用于封装可重用的代码。

语法

返回值类型 函数名(参数列表) {
    // 函数体
    return 返回值;
}

示例

int add(int a, int b) {
    return a + b;
}

6.数组

数组是存储相同类型数据的集合。

语法

数据类型 数组名[大小];

示例

int numbers[5] = {1, 2, 3, 4, 5};

7.指针

指针是存储变量地址的变量。

语法

数据类型 *指针名;

示例

int a = 10;
int *p = &a;  // p 指向 a 的地址

8.结构体

结构体是用户自定义的数据类型,用于组合不同类型的数据。

语法

struct 结构体名 {
    数据类型 成员1;
    数据类型 成员2;
    ...
};

示例

struct Student {
    int id;
    char name[50];
    float score;
};

9.文件操作

C语言提供了一组标准库函数用于文件操作。

函数

描述

fopen

打开文件

fclose

关闭文件

fread

读取文件

fwrite

写入文件

fscanf

格式化读取

fprintf

格式化写入

示例

FILE *file = fopen("example.txt", "r");
if (file != NULL) {
    char buffer[100];
    fgets(buffer, sizeof(buffer), file);
    printf("%s", buffer);
    fclose(file);
}

10.动态内存管理

C语言提供了动态内存分配函数。

函数

描述

malloc

分配内存

free

释放内存

calloc

分配并初始化内存

realloc

重新分配内存

示例

int *arr = (int *)malloc(5 * sizeof(int));
if (arr != NULL) {
    for (int i = 0; i < 5; i++) {
        arr[i] = i + 1;
    }
    free(arr);
}

11.预处理器指令

预处理器指令在编译前处理。

指令

描述

#include

包含头文件

#define

定义宏

#ifdef

条件编译

#pragma

编译器指令

示例

#define PI 3.14159
#include 

总结

C语言的核心语法点包括数据类型、变量与常量、运算符、控制语句、函数、数组、指针、结构体、文件操作、动态内存管理和预处理器指令。掌握这些知识点是学习C语言的基础,也是进一步深入系统编程和嵌入式开发的关键。

相关推荐

redis的八种使用场景

前言:redis是我们工作开发中,经常要打交道的,下面对redis的使用场景做总结介绍也是对redis举报的功能做梳理。缓存Redis最常见的用途是作为缓存,用于加速应用程序的响应速度。...

基于Redis的3种分布式ID生成策略

在分布式系统设计中,全局唯一ID是一个基础而关键的组件。随着业务规模扩大和系统架构向微服务演进,传统的单机自增ID已无法满足需求。高并发、高可用的分布式ID生成方案成为构建可靠分布式系统的必要条件。R...

基于OpenWrt系统路由器的模式切换与网页设计

摘要:目前商用WiFi路由器已应用到多个领域,商家通过给用户提供一个稳定免费WiFi热点达到吸引客户、提升服务的目标。传统路由器自带的Luci界面提供了工厂模式的Web界面,用户可通过该界面配置路...

这篇文章教你看明白 nginx-ingress 控制器

主机nginx一般nginx做主机反向代理(网关)有以下配置...

如何用redis实现注册中心

一句话总结使用Redis实现注册中心:服务注册...

爱可可老师24小时热门分享(2020.5.10)

No1.看自己以前写的代码是种什么体验?No2.DooM-chip!国外网友SylvainLefebvre自制的无CPU、无操作码、无指令计数器...No3.我认为CS学位可以更好,如...

Apportable:拯救程序员,IOS一秒变安卓

摘要:还在为了跨平台使用cocos2d-x吗,拯救objc程序员的奇葩来了,ApportableSDK:FreeAndroidsupportforcocos2d-iPhone。App...

JAVA实现超买超卖方案汇总,那个最适合你,一篇文章彻底讲透

以下是几种Java实现超买超卖问题的核心解决方案及代码示例,针对高并发场景下的库存扣减问题:方案一:Redis原子操作+Lua脚本(推荐)//使用Redis+Lua保证原子性publicbo...

3月26日更新 快速施法自动施法可独立设置

2016年3月26日DOTA2有一个79.6MB的更新主要是针对自动施法和快速施法的调整本来内容不多不少朋友都有自动施法和快速施法的困扰英文更新日志一些视觉BUG修复就不翻译了主要翻译自动施...

Redis 是如何提供服务的

在刚刚接触Redis的时候,最想要知道的是一个’setnameJhon’命令到达Redis服务器的时候,它是如何返回’OK’的?里面命令处理的流程如何,具体细节怎么样?你一定有问过自己...

lua _G、_VERSION使用

到这里我们已经把lua基础库中的函数介绍完了,除了函数外基础库中还有两个常量,一个是_G,另一个是_VERSION。_G是基础库本身,指向自己,这个变量很有意思,可以无限引用自己,最后得到的还是自己,...

China&#39;s top diplomat to chair third China-Pacific Island countries foreign ministers&#39; meeting

BEIJING,May21(Xinhua)--ChineseForeignMinisterWangYi,alsoamemberofthePoliticalBureau...

移动工作交流工具Lua推出Insights数据分析产品

Lua是一个适用于各种职业人士的移动交流平台,它在今天推出了一项叫做Insights的全新功能。Insights是一个数据平台,客户可以在上面实时看到员工之间的交流情况,并分析这些情况对公司发展的影响...

Redis 7新武器:用Redis Stack实现向量搜索的极限压测

当传统关系型数据库还在为向量相似度搜索的性能挣扎时,Redis7的RedisStack...

Nginx/OpenResty详解,Nginx Lua编程,重定向与内部子请求

重定向与内部子请求Nginx的rewrite指令不仅可以在Nginx内部的server、location之间进行跳转,还可以进行外部链接的重定向。通过ngx_lua模块的Lua函数除了能实现Nginx...