C语言语法规则(下)

c语言学习笔记_2基本词法语法规则 ****2015年11月23日19:11:432_基本词法语法规则2-1-1字符集三字符序列 eg:“??(” <=>“ [”//以两个问号加一个符号来替换另一个符号,共有九个 2-1-2词法元素编译器对字符序列进行词法分析,被特定规则分解为记号(程序中具有语义的最基本组成单元) 记号分类:标识符,关键字,常量(含字符串常亮),运算符,标点符号; 编译器从左到右收集字符,尽量建立最长的记号,即使结果 阅读详情

八、函数

函数在C语言起到至关重要的作用,像我们的printf和scanf本身也是一个函数。只不过在stdio.h中就已经定义了这个函数,所以可以直接调取stdio.h头文件来使用printf和scanf函数。但是C语言中的库函数并不能完全满足我们的需求,这时,我们可以自己编写一个函数来满足需求。例如计算阶乘的函数。

int fact(int n)
{
    if(n==0||n==1)
        return 1;
    else
        return n*fact(n-1);
}

当我们写好了计算阶乘的函数之后,就可以直接调取这个函数了。

int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<=n;i++)
	{
		printf("%d\n",fact(i));
	}
	return 0;
}

return的作用

return的作用在于计算函数的值。例如,return a;的意思是把a的值传递给这个函数,然后退出函数。注意,除了void类型的函数,其他的函数都应该有且只有一个返回值。

main函数的return值

main函数的return值比较特殊,在Linux系统下,main函数的返回值主要用来检测程序运行的正常性。一般而言,main函数返回0表示正常退出,返回其他值则表明程序异常退出。不过具体的设置由程序员来决定。

递归算法

递归算法的核心在于自己调用自己,上面提到的求阶乘函数就用到了递归算法。

递归算法的优点

递归算法的优点在于代码较为简洁、易懂,能够较好的理解其中的原理。

递归算法的缺点

在递归层次比较大的时候,容易爆栈(栈溢出,Stack Overflow)

九、结构体与面向对象基础

struct数据类型

结构体数据类型是一个数据类型,可以包含一系列数据类型,例如

struct Test
{
    int a;
    float b;
    char c[20];
}

然后我们sizeof(struct Test)一下,就会发现这个结构体所占字节大小为28字节,这说明Test结构体所占字节为28个字节,具体分析如下:

int 4字节;

float 4字节;

char 1字节×20=20字节

加起来一共28字节。

typedef自定义数据类型

typedef struct Test
{
    int a;
    float b;
    char c[20];
}test;

typedef定义了一个数据类型test

然后,调用这个数据类型

int main()
{
    test test01;
    test01.a=1;
    test01.b=1.0;
    printf("%d\n",test01.a);
    printf("%d\n",test01.b);
}

代码里的test是声明的自定义数据类型,然后我们就定义了一个test01的变量。

在test01变量里使用点号“.”运算符,引用结构体内部变量就是test01.a

在test的结构体数据类型中,a是int类型,b是float类型,所以我们在引用结构体内部变量的时候要看清楚内部变量的数据类型,然后用正确的格式进行输入、运算和输出。

面向对象基础

程序有面向过程和面向对象两种思想。面向过程指的是程序一步一步地运行下去,通过过程去描述程序的功能;面向对象则是把问题分成一个个主体,主体具有什么属性,能够实现什么功能,等等。

面向对象的三大特性:封装、继承、多态

1. 封装(Encapsulation)

核心思想:隐藏对象的内部细节,仅对外暴露必要的接口。
目的:提高安全性(防止外部随意修改内部数据)、简化使用(用户无需关心内部实现)。

2. 继承(Inheritance)

核心思想:子类继承父类的属性和方法,并可以扩展或修改功能。
目的:代码复用,建立类之间的层次关系。

3. 多态(Polymorphism)

核心思想:同一操作作用于不同对象,可以有不同的行为。
目的:提高代码灵活性,支持统一接口处理不同对象。

C语言表达式语法规则详解及示例代码 本文详细介绍了C语言表达式的语法规则,并提供了相应的示例代码。掌握C语言表达式的语法规则对于编写高质量的C语言程序非常重要。C语言作为一种广泛应用的编程语言,其表达式语法规则对于程序员来说是非常重要的基础知识。本文将详细介绍C语言表达式的语法规则,并提供相应的示例代码,帮助读者更好地理解和应用。对于具有副作用的表达式,其求值顺序是未定义的。C语言中的表达式可能涉及到不同类型的操作数,需要进行类型转换以保证表达式的正确性。C语言中的表达式运算符具有不同的优先级,这会影响表达式的计算顺序。 阅读详情

相关推荐

项目经理面试 5 大高频题 + 实战回答模板,帮你稳拿 offer

项目经理面试5大高频问题及应答技巧 摘要:本文总结了项目经理岗位常见的5个面试问题及回答策略,帮助求职者更有针对性地准备面试。核心问题包括:1)描述负责过的典型项目;2)常用项目管理工具;3)项目遇到的挑战及解决方案;4)风险管理方法;5)项目成功标准。每个问题都从面试官考察重点、回答技巧、实战案例三个维度进行分析,强调要用STAR法则(情境-任务-行动-结果)结构化表达,突出解决问题的能力而非简单罗列经历。特别提醒要量化项目成果(如提前2周上线、节省8%预算等),并注意展示商业思维和团队协作能力。

逸尘谈PM 2108

根据c语言语法规则,C语言语法规则

精选文库C语言基本语法规则C 的令牌(Tokens)C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:这五个令牌分别是:分号 ;在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。例如,下面是两个不同的语句:注释注释就像是 C 程序中的帮助文本,它们会被编译器忽略。它们以 /* 开始,以字...

weixin_32344641的博客 550

【华为Hilink SDK Linux系统开发】目录 开源一小步

目录 【华为Hilink开发】第一章:华为hilink平台简介及开发流程 【华为Hilink开发】第二章:华为hilink SDK网络适配、网关添加删除 【华为Hilink开发】第三章:华为hilink SDK子设备添加、删除 【华为Hilink开发】第四章:华为hilink SDK子设备控制及同步 【华为Hilink开发】第五章:华为hilink SDK适配遇到的问题 ...

开源一小步 3620

drl 规则语言 语法_C语言基本语法规则

drl 规则语言 语法 C语言基本语法规则 (C Language Basic Syntax Rules) C language syntax specify rules for sequence of characters to be written in C language. In simple language it states how to form statements in a...

cunfen6312的博客 1051

PSCAD通过python调用自动化库的实现

带有python脚本的pscad自动化PSCAD通过python调用自动化库的实现前期准备实现 PSCAD通过python调用自动化库的实现 在网上搜了一圈没有找到,通过油管的一个视频学到了,这里分享一下。 前期准备 下载PSCAD 在官方文档中建议PSCADV4.6.1及以上版本 下载python python这里没注明哪些版本可用,博主下载了最新的3.8.2使用正常。 下载IDE py...

橙子的博客 5915

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1235

C语言基础入门:了解语法规则

本文介绍了C语言的基本语法规则,包括程序结构、标识符命名规则、注释、数据类型和控制流语句。

超级小狗的博客 1094

【多模态融合】TransFusion学习笔记(1)

工作上主要还是以纯lidar的算法开发,部署以及系统架构设计为主。对于多模态融合(这里主要是只指Lidar和Camer的融合)这方面研究甚少。最近借助和朋友们讨论论文的契机接触了一下这方面的知识,起步是晚了一点,但好歹是开了个头。下面就借助TransFusion论文及其开源代码来串一串这方面的知识。这个很好理解,参考FPointNet网络图示。就是利用现有的2D检测器在图像上提取2D初始框,根据Camera成像原理,捕获2D框视锥内的点云,再利用点云分类模型(如:PointNet)做进一步分类。

4964

c语言标识符的语法规定,C语言语法规则.doc

精选文库PAGEPAGE 1--C语言基本语法规则C 的令牌(Tokens)C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:这五个令牌分别是:分号 ;在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。例如,下面是两个不同的语句:注释注释就像是 C 程序中的帮助文本,它们会被编译器忽略。...

weixin_42271195的博客 1469

NCCL 核心集体通信操作深度解析:从原理到优化实践

操作逻辑:若 N 个 GPU 各持有一段数据(大小为 S),通信后每个 GPU 会持有所有 N 段数据(总大小为 N×S)。典型场景:多卡推理结果聚合、模型并行中间结果同步。操作逻辑:N 个 GPU 各持有数据,通过归约(求和、取平均等)运算后,所有 GPU 获得相同结果。典型场景:数据并行训练的梯度聚合(如 SGD 优化器)。操作逻辑:N 个 GPU 各持有 N 份数据分片,通信后每个 GPU 获得所有 GPU 的对应分片。典型场景。

jundao1997的专栏 679

1.2 amdgpu_bo的设计分析 — gem层和ttm层

本文分析了AMD KFD的BO设计架构,重点介绍了DRM子系统中缓冲对象的多层继承关系。文章首先展示了核心继承层次图,包括DRM通用层(drm_gem_object)、TTM内存管理层(ttm_buffer_object)、AMD驱动层(amdgpu_bo)和KFD计算层(kgd_mem)。随后详细解析了drm_gem_object结构体的关键功能,包括用户空间接口管理、内存映射支持、引用计数机制以及DMA-BUF导入/导出功能。

图形/计算GPU的驱动与虚拟化技术分享园地 2549

c语言程序中的语法规则,C语言程序结和语法规则.doc

C语言程序结构和语法规则一、C语言程序的基本结构下面通过几个简单的示例,介绍C语言程序的基本构成和书写格式,使读者对C语言程序有一个基本的了解。在此基础上,再进一步了解C语言程序的语法和书写规则。【例1.1】求三个数的平均值的C语言程序。/*功能:求三个数的平均值*/main() /* main()称为主函数*/{float a,b,c,ave; /* 定义a,b,c,ave为实型数据*/a=7...

weixin_39712821的博客 259

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C语言中常见语法规则

1 头文件应用""和<>的区别 C语言中<>和“”的区别如下: 1、<>先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h和 stdlib.h等用这个方法。 2、""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。 未完待续! ...

miffywm的博客 1514

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[编译原理] C语言语法规则 (C89)

文章目录C89文法1 预处理阶段1.1 词法分析1.2 语法分析2 编译阶段2.1 词法分析2.1.1 基本字符2.1.2 单词2.1.3 常数2.1.4 字符串2.2 语法分析2.2.1 式2.2.2 声明2.2.3 句2.2.4 总定义3 后记3.1 与C89的区别3.2 BNF范式3.3 一些想法和说明3.4 一些例子3.4.1 例1 函数 C89文法 1 预处理阶段 1.1 词法分析 字母...

airaou 6791

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C语言词法元素是什么,第2章 基本词法语法规则与程序元素-C语言.ppt

第2章基本词法语法规则与程序元素-C语言要点C语言与程序设计The C Programming Language ;主要内容;第2章 基本词法语法规则 与程序元素;2.1 字符及词法元素 ;三字符序列;2.1.2 词法元素;词法分析举例;2.2 语法规则 ; BNF范式的符号;BNF范式示例--标识符的BNF范式;2.2.2 EBNF ;2.2.3 语法图 ;2.3 标识符、关键...

weixin_39843431的博客 169

C语言语法规则(上)

int *p;那么这个*p就是所谓的指针变量,指针变量本质上还是一个变量,只不过这个指针变量存放的是内存地址。内存地址就是给计算机提供访问位置的地址,就像我去你家需要你家的地址,计算机访问数据的时候也需要一个地址进行访问变量。

Tianshang301的博客 1903

c语言语法规则 c99版

c语言语法规则,c99版词汇语法词汇元素 记号:  关键字  标识符  常量  字符串  标点符号 预处理记号:  头文件名  标识符  预处理数  常量字符  字符串  运算符  非上述范围内的任一非空白字符关键字 关键字:其中之一  auto  break  case  char  const  continue default do  double  else  enum

anyanglhl的专栏 3402

C语言中const语法规则和用法的解析

const 的用法的原理详细分析起来,一定要给出理由的话,还是比较困难的,但c编译器对const处理的语法规则还是有章可循的。 下面就具体分析一下const的语法规则: const int a=2; //const修饰了int ,表示这行代码定义的变量,最后的取的int型的值是常量2,不可被后面的代码修改。 int const a=2; //const修饰了变量a ,表示这行代码定义...

weixin_30878501的博客 182

C语言基础2-Decalarations-声明的语法规则

声明是一种C语言构造,它将为程序引入一个或者多个标识符并指定其含义和属性。

weixin_45721244的博客 1079

给我讲讲C语言的函数的语法规则

C语言的函数语法规则是由函数声明,函数定义和函数调用组成的。函数声明用于告诉编译器函数的名称,返回类型和参数类型。函数定义提供了函数的实际实现,它包含了函数的执行步骤。函数调用则是在程序中调用函数的语句,它会将控制权转移到函数的定义中,执行函数的操作,然后返回结果。 ...

weixin_42592399的博客 228

C语言2小于等于2是否正确,C语言2基本语法规则练习题2.doc

C语言2基本语法规则练习题2第二章 基本语法规则2.1数据类型、运算符、表达式一、选择题1.C语言中确定数据存储的格式、范围与有效位数的依据是A.数据正负B.数据范围C.数据类型D.数据大小2.一般说在C语言中字符型数据、整型数据、单精度浮点型及双精度浮点型数据的存储长度分别为A.2、4、8、1B.4、2、1、8C.1、2、4、8D.1、4、2、83.转义字符“\t”表示A.横向跳格,即跳到下一个...

weixin_31184569的博客 847

c语言语法作用,C语言的语法规则.doc

C语言的语法规则知识点16 [共用体型数据]综述:通常情况下,一旦一个变量被创建,那么它就占据了一块内存区域,只能用于存放某类型的数据,例如,int型变量只能存放int型数据,结构体变量只能存放结构体类型的数据等等。但是,在解决实际问题的时候,会碰到一些特别的数据存放方式。例1:希望创建一个变量u1(该变量在计算机内存中占据一块空间),用该变量来存放某同学的年龄或性别,年龄(整型)和性别(字符型)...

weixin_30537231的博客 273

C语言程序的语法规范,C语言程序结构和语法规则

C语言程序结构和语法规则一、C语言程序的基本结构下面通过几个简单的示例,介绍C语言程序的基本构成和书写格式,使读者对C语言程序有一个基本的了解。在此基础上,再进一步了解C语言程序的语法和书写规则。【例1.1】求三个数的平均值的C语言程序。main(){floata,b,c,ave;a=7;b=9;c=12;ave=(a+b+c)/3;printf("ave=%f\n",ave);}程序运行结果:...

weixin_28826545的博客 2480

c语言表达式语法问题,c语言表达式语法规则是什么_后端开发

c语言统计单词个数的方法_后端开发在一篇文章中单词都是用空格隔开的,所以单词个数=空格数+1,c语言统计单词个数实际上转换成了统计文章中的空格数,可以用while和if来进行统计。 c语言表达式语法规则是什么C语言表达式语法规则如下:推荐学习:c语言视频教程(1)C源程序是由一个主函数和若干个其它函数组成的。(2)函数名后必须有小括号,函数体放在大括号内。c语言给数组赋值的3种形式_后端开发c语言...

weixin_30197529的博客 1310

C语言switch-case:从语法规则到实战避坑指南

本文深入解析C语言中switch-case语句的语法规则、执行流程及常见陷阱,提供实战避坑指南。涵盖case值的限制、穿透现象、性能优化技巧及替代方案,帮助开发者高效使用switch-case结构,避免常见错误。

weixin_30323631的博客 402
上一篇: C语言语法规则(上)
下一篇: 数据结构(C语言版)
Tianshang301
博客等级 码龄2年 50粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值