编程语言系列(一)--C语言基础知识点总结

【C语言基础学习笔记】一、初始C语言(总结篇) 说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(近期有很多小可爱给我私发消息,问我怎么学习编程,怎么学好c语言等问题,所以在这里我统一进行解答和回复,希望可以帮到大家。) 本章内容: 1、如何学好编程,编程学习方法分享(小白必看~) 2、编程学习路径分享(C++/Java) 3、初始C语言总结思维导图(复习+提高 专用) 4、初始C语言知识补充(查漏补缺) 5、编程练习题(巩固加深所学知识) 文章目录一、 阅读详情


1.函数

1)函数定义:
   返回类型 函数名(形式参数列表,可多个参数)
  {
      函数体;
   }
  函数返回类型为void 时函数体内可以有return,表示函数的返回,但后面不能跟返回值
  如果返回类型不为void,则return后面一定要跟返回值

2)函数声明:

  返回类型 函数名(形式参数列表,可多个参数);

3)函数调用:
      实参和形参的个数、类型、顺序要相同

4)函数作用域:一般以其声明的下方都有效(函数默认为外部函数)

定义时前面加 static :其作用域仅在本文件内
                      作用:1)防止重名定义
                            2)防止外部文件调用该文件


2.数组

1)一维数组,二维数组,多维数组
2)定义方式:成员类型 数组名[成员个数]; char a[10];
3)初始化:
 a) char[10]={1,2,3,45,50}给固定成员个数时,未初始化的成员值默认为0
 b) 定义时候不初始化,程序运行时进行初始化,只能进行单个初始化
  char a[10];
  a[0]=1;
  a[1]=2;
                .........
                访问时注意下标是从0开始的。注意不要越界
                char a[10] : 访问为a[0]——a[9]

  a[4]={1,2,3};
  a[4]越界了,值不确定   经验结果:在KEIL中会循环取值,即a[4]=a[0]=1,可能和编译器有关

 c)字符数组
 char a[]="program" 或者 a[]={"program"}  数组长度要加一,后面会自动加上结束符'\0'’
        char a[]={'p','r','o','g','r','a','m'}   数组长度不要加一
        'a'=98,  '0'=0+0x30;  '1'=1+0x30 ASSIC值


3.指针

1)定义: 类型 *指针名;

2)指针的四要素:

char *P = NULL;  //NULL = 0
a)本身类型:char *

b)指向类型:char

c)指向内存单元值:0地址的内容

d)本身占用的内存单元:此内存单元存的内容为地址
  (用来判断是否可以作为左值使用)如int a[10]; a也是一个地址,
                  但不符合第四点,所有不可以给a赋值,a为(地址)常量   a=p是不合法的

用P去访问i
char **p;
char *p1;
char i;
P1=&i;
P=&P1;
所以可以写成:
**p=i;


3)字符指针
char *p="program"; 这种定义不规范,为静态方式,内容不能被修改。所有 *p=10 是非法的
要定义不能被修改的内容可以用以下语句:
const char *p="program";

扩展:
char const *P;  p指向字符常量
const char *p;  p指向字符常量
char *const P;  p指向的地址是不可改变的
const char const *P; p指向的地址是不可改变的且它存储的值是常量


4)函数指针:指向函数的指针

定义:
char (*fP)(char,int);

赋值:
char function(char i,int j)
 { 

  }

fp=function;
调用
(*fp)(10,100);

type char (*FUN)(char,int);类型定义
FUN fp ;定义fp为指向函数的指针
                               

volatile的用法和作用

const与volatile相反,
volatile表示该内存中的数值可能随时会改变。

uchar a,b,c
a=5;
b=a;  //b=5
c=a;  //c=5

volatile uchar a,b,c
a=5;
b=a;  //b不确定
c=a;  //c不确定

例如单片机的P0口初始化为:
P0=0x0000 0001
a=p0;  //如果人为使P0口外部都接高电平,则a=0x1111 1111,而不是0x0000 0001。与硬件相关

在定义寄存器相应的地址时常用到volatile:
#define rGPCCON    (*(volatile unsigned *)0x56000020)      
#define rGPCDAT    (*(volatile unsigned *)0x56000024) 


在项目里文件比较多时,少用全局变量,直接利用函数调用形式

单个文件: static  char  i;  定义静态变量,防止别的文件对变量值的意外修改。

char fun(void)
{
    return(i);
 }

直接使用外部调用全局变量形式:extern int i;   这样的缺点是存在隐患,当文件较多时很可能出现全局的变量重名的问题,这时候要修改的话可能较麻烦。


尽量避免在头函数.h文件里面进行变量的定义

C语言基础语法详解:从入门到掌握 空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。标识符由字母(大写或小写)、数字和下划线组成,但第一个字符必须是字母或下划线,不能是数字。fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。在 C 语言中,令牌(Token)是程序的基本组成单位,编译器通过对源代码进行词法分析,将代码分解成一个个的令牌。是语句结束符,也就是说,每个语句必须以分号结束,它表明一个逻辑实体的结束。 阅读详情

相关推荐

C200系列开发:C200PC_C200PC编程语言与工具

C200PC编程语言和工具为Honeywell C200系列控制器提供了强大的编程和配置能力。通过理解其数据类型、控制结构、函数和子程序,以及使用专业的编程软件和模拟器,开发者可以高效地编写复杂的控制逻辑。遵循最佳实践,如代码模块化、使用注释、代码优化、测试和调试以及错误处理,可以进一步提高代码的质量和系统的可靠性。希望本指南能帮助你更好地掌握C200PC编程语言和工具,为你的控制项目带来成功。如果有任何疑问或需要进一步的帮助,请参考Honeywell的官方文档或联系技术支持。

zhubeibei168的博客 1214

c语言知识点总结大全(史上最全)

1. C语言中规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须 是字母或下划线,而且标识符不能是C语言的关键字。 2.scanf函数的一般格式是: 3.scanf(格式控制,地址表列) 4.逻辑与“&&”,逻辑或“ll ”,逻辑非“!” 逻辑与运算符“&&”,当参与运算的两个量都为真时,结果才是真,否则为假;逻辑或运算符“ll ”,当参与运算的两个量有一个为真时,结果是真,否则为假;逻辑非运算符“!”,当参与运算的量为真时,结果才是..

m0_65334415的博客 4万+

C语言基础知识点学习指南

C语言自1972年由Dennis Ritchie在AT&T的贝尔实验室开发以来,因其简洁、灵活、功能强大和接近硬件的特点,迅速成为了系统编程的主流语言。最初设计C语言是为了编写Unix操作系统,但其优秀的性能和跨平台能力,让C语言在嵌入式系统、操作系统、编译器等领域都占有一席之地。C语言的特点包括:高效性:C语言代码接近机器语言,执行效率高。灵活性:强大的指针操作,为内存管理提供了极大的灵活性。移植性:C语言的规范保证了代码在不同系统间的高度兼容性。

weixin_29867767的博客 782

【C语言】 知识点汇总--基础知识点梳理(超全超详细)

目录一、从源代码到exe二、基本数据类型三、字符在屏幕上的显示原理四、溢出现象五、类型转换规律六、短路问题七、指针变量类型的作用 八、指针类型的扩展——多级指针九、指针类型的扩展——指针数组十、指针类型的扩展——数组指针十一、一维数组-名-特性十二、二维数组-名-特性十三、大端存储-小端存储十四、函数在源代码中的三种状态十五、堆区与栈区的区别十六、函数的执行原理十七、枚举类型十八、typedef二十、const二十一、全局/局部变量生命周期与作用域二十二、static静态变量二十三、extern二十四、宏d

jia_03的博客 2万+

C++常见面试题总结

C++常见面试题总结

xu_fu_yong的专栏 8万+

Bellhop海底地形仿真入门:从MATLAB数据导入到3D可视化(附避坑指南)

本文详细介绍了Bellhop海底地形仿真的完整工作流程,从MATLAB数据导入、清洗与坐标转换,到构建.bty输入文件,再到生成高质量3D可视化结果。文章重点解析了数据格式、深度值正负、单位统一及坐标投影等关键环节的避坑指南,并提供了可复用的代码片段,帮助用户高效完成从原始数据到仿真成果的转换。

weixin_29275257的博客 194

C语言知识点汇总

C语言——只看这一篇就够了! C语言知识点保姆级总结,这不得进你的收藏夹吃灰?! 拖了很久的C语言所学知识的简单小结,内容有点多,第一次总结也可能有错误或者不全面,欢迎随时补充说明! 数据类型 ​ 用不同数据类型所定义的变量所占空间大小不一样,定义的变量不是保存于数据类型中,而是因为只有定义了该数据类型的变量才能保存数据。 一、整型 ​ 1、整型(int) 四字节,默认有符号(-231-231-1),无符号加unsigned(0-2^32-1)(十位数) ​ 2、短整型(short int) ,两字节

要好好学习 4万+

一文读懂YOLO V5 与 YOLO V4

一文读懂YOLO V5 与 YOLO V4 YOLO之父Joseph Redmon在今年年初宣布退出计算机视觉的研究的时候,很多人都以为目标检测神器YOLO系列就此终结。然而在4月23日,继任者YOLO V4却悄无声息地来了。Alexey Bochkovskiy发表了一篇名为YOLOV4: Optimal Speed and Accuracy of Object Detection的文章。YOLO V4是YOLO系列一个重大的更新,其在COCO数据集上的平均精度(AP)和帧率精度(FPS)分别提高了10%

williamhyin的博客 8793

C语言知识点总体梳理(知识点)

C语言知识点总体梳理一、数据的表现形式1、常量 一、数据的表现形式 1、常量 (1)整型常量 (2)实型常量:十进制小数形式(由数字和小数点组成)、指数形式(12.34e5,e或E之前和之后必须有数字、之后的数字必须是整数) ...

hey,欢迎浏览我的博客,希望能给你提供帮助。 5752

Docker Desktop重装避坑:从卸载到安装的完整流程(Win10/Win11适用)

本文详细介绍了在Windows 10/11系统上彻底卸载和重新安装Docker Desktop的完整流程,包括深度清理残留文件、注册表项和虚拟磁盘,以及安装前的环境准备和安装后的验证步骤,帮助用户避免常见问题并优化Docker环境配置。

julia4scientist的博客 1107

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

C语言知识总结(建议收藏)

爆肝10000字,建议收藏,等你复习C语言有用!

Lushengshi的博客 4743

独立站如何采集商品?外贸独立站采集教程

从这里Robert了解到还有国内有很多仿牌卖家、微商,都有类似的情况,他们出海的阻碍主要在于支付、物流、推广。8.插件“抓取任务”列表手动点同步,将商品同步到主商城后台商品管理列表(商品默认同步到下架列表中) 后台商品管理下架列表显示已同步商品。5.店铺信息修改完成后,可以开始采集商品,采集时弹窗中会自动识别当前平台及商品链接,分类和相册名称可以自定义 编辑修改。4. 打开采集目标站商品页面,点开谷歌浏览器扩展程序列表,找到Shopyy采集平台,打开配置页。打开弹窗中的“店铺管理”,添加店铺信息。

Jernnifer_mao的博客 1378

C语言基础总结

我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。

weixin_50216991的博客 2万+

Cadence学习之路:什么是PCB工艺的正片与负片

正片??负片??Flash焊盘的创建与使用

qq_46757048的博客 4245

Orin 10G PHY网络分析

由于调试用的10G PHY,所以整理下分析过程; 1.从Orin devkit 丝印来看RJ45 对应J17 通过搜索 MGBE_PHY_A_N 找到连接的10G PHY, 原理图上标明了MDIO address 为0x0, 使用的PHY 芯片为 Marvel 的AQR113C, 主要特性: 架构: 关键特征: MDC 连接了GPIO26_XFI0_MDC; MDIO 连接了GPIO25_XFI0_MDIO; 通过pinmux_config映射表也可以..

乐于分享 5657

C语言基础总结,零基础入门到精通,收藏这篇就够了

一. C语言初识与简单介绍二. 数据类型及语句1. C语言的注释2. C语言数据类型和关键字3. 存储相关的关键字4. if选择结构5. switch case语句6. break语句的用法7. while循环语句8. for循环语句9. continue语句10. 格式化输出函数printf11. 类型转换三. 数组1. 数组的分类2. 数组的初始化四. 函数1. 函数的分类2. 函数的定义3. 函数的声明4. 变量的存储类别五. 预处理1. C语言编译过程2. 文件包含 #include。

leah126的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

c语言基础学习①

学习 C 语言可以帮助你深入理解计算机的工作原理、内存管理、数据结构和算法等编程基础概念,且许多其他编程语言的语法和概念都受到了 C 语言的影响,掌握 C 语言后,学习其他语言会更容易。a.跨平台性好:只要有相应的编译器,C 语言程序可以在不同的操作系统和硬件平台上运行,这使得开发人员可以在一个平台上开发程序,然后在其他平台上进行编译和运行。b.标准统一:C 语言有较为统一的标准(如 ANSI C),这保证了不同编译器对 C 语言的实现具有一定的一致性。float b(实型){局部变量会覆盖同名全局变量}

2401_87548779的博客 1606

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C语言基础知识点大全C语言入门:助您快速掌握编程基石

C语言基础知识点大全C语言入门:助您快速掌握编程基石 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在编程世界中,C语言被公认为是最基础且最强大的编程语言之一。C语言基础知识点大全(C语言入门)项目,为您提供了全面的C语言学习资源,无论是对于初学者还是希望巩固基础的开发者来说,都是一份不可多得的资料。 项目技术分析 核心内容概述 本项目的核心内容涵盖了C语言学习的方方...

gitblog_06790的博客 886

C语言基础知识点(一)

C语言基础知识点回顾(一)

2302_77967716的博客 900

C语言基础知识点总结很详细:深入学习C语言的利器

C语言基础知识点总结很详细:深入学习C语言的利器 【下载地址】C语言基础知识点总结很详细 这是一份详尽的C语言基础知识总结,旨在帮助您深入理解和掌握C语言的各个细节。资源内容涵盖基础语法到复杂概念,通过丰富的案例题目和细致的归纳解释,帮助您在实践中巩固知识。章节分类清晰,便于系统学习和复习。无论您是初学者还是希望提升技能...

gitblog_06771的博客 583

[C语言]一、C语言基础(01)

Code::Block是一个免费的跨平台IDE,它支持C、C++和Fortan程序的开发。Code::Block的最大特点是它支持通过插件的方式对IDE自身功能进行扩展,这使得Code::Block具有很强的灵活性,方便用户使用。Visual C++ 2010,简称VC2010,是由微软开发的独立的、免费的 C/C++ 编译工具,与Visual Basic等并列,最后微软将它们整合在一起组成了Visual Studio。

weixin_44428807的博客 3143

c语言基础知识点总结

C语言是一种通用的、过程式的计算机编程语言,广泛应用于系统编程、嵌入式系统开发等领域。它由Dennis Ritchie于1972年在贝尔实验室开发。函数定义函数声明。

云创413的博客 1356

【C语言基础知识】

C语言基础知识 | 基础扫盲 | C语言0基础

小明的博客 824

C语言知识点复习梳理

C语言知识点复习梳理 C语言的知识点讲完了,接下来就是做一下整理与总结,然后就会进入其他知识的学习。 本文目录如下: 基础知识。 顺序程序设计。 数据类型。 标准输入输出。 进制转换。 选择结构。 循环结构。 数组。 函数。 指针 结构体。 文件。 题外话 这里就是说一些我觉得很基础的问题,无关紧要,但是希望可以解决你的疑惑。 有什么好的C语言...

qq_37864510的博客 3273

C语言基础心得体会一

c语言基础:第一天笔记计算机组成1.定义:能进行计算计算和逻辑处理的设备2.硬件:组成计算机的各种物理部件。(内存条,CPU,鼠标,键盘......)硬件=电子设备+单片机编程(单片机,微控制器)+集成电路(原理图PCB设计)+嵌入式)系统)3.软件:计算机中运行的程序和数据(LINUX应用开发)软件=系统软件(Linux系统)+应用软件+编程语言(C/C++)+算法和数据结构##########计算机的六大部件中央处理器(CPU):控制加计算内存:程序运行时,临时存储数据。

2501_90124553的博客 1020
上一篇: android系统启动流程之init.rc详细分析笔记
下一篇: android CTS测试之TV智能电视总结笔记
杨毅
博客等级 码龄14年 26粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值