| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言基础知识概况 -> 正文阅读 |
|
[C++知识库]C语言基础知识概况 |
一、什么是C语言 就如人的语言分汉语英语,作用是实现人与人之间的交流相同。C语言是一门计算机语言。实现人与计算机交互的一种语言。C语言是一门广泛用于底层开发的编程语言 计算机的结构自上而下大概分为以下几层
其中Linux操作系统就是用C语言写的。 计算机语言经历了由高级语言 机器语言 B语言 C语言的进步。虽然现在出现了很多语言,类如JAVA、Pathon、PHP...但是,作为一个能与计算机底层直接交互的语言,我认为C是学习计算机语言的必修课。 C语言能实现人机交互的方法是:编译器将C语言转换成汇编语言,汇编语言编译成机器指令 C语言的入口是由main函数进入的。(在一个程序中,main函数有且只有一个) 二、C语言的数据类型 char 、short 、int 、long 、float、double...组成C语言的基本数据类型 在32位操作系统下,可以用sizeof操作符来查出它们都占多少字节: 如图显示的是在vs2019环境下的情况,需要注意的是,在Linux环境下,long的值可能会发生改变,但仍满足sizeof(long) >= sizeof(int) ?三、变量和常量 3.1.1变量 变量描述变化的概念,不变的用常量表示。变量例如:float weight = 55.5f 全局变量与局部变量是容易混淆的点,下面用代码来解释下它们的不同。 ?这里面,107行代码的a=10就是全局变量,它虽然不在main函数中定义,但是依然可以直接用。 ?但是,如果在定义全局变量的情况下,我们依然可以在函数{}内部定义a的值。这时候输出的a的值采用局部优先原则。 3.1.2变量的作用域和生命周期 局部变量?的作用域是变量所在的局部范围 全局变量?的默认作用域是整个程序????????一个全局变量,在不给初始化的时候,默认值为0 还用上面的代码来说就是:a=10这个全局变量,也可以用到这个程序的其他函数中去,不仅仅可以在主函数中使用。 ?3.2 常量 一般来说,我们编程者自己设置的量就算常量,但是有三种特殊情况的常量 ①:const修饰的常变量,怎么说呢。const 修饰的常变量 具有常属性,但本质上是一个变量。 意思就是,程序员不能通过直接改变const修饰的常量。但是有可能通过其他方法改变
②:#define定义的标识符常量 ③:枚举常量?
枚举类型默认是从第一项为0开始的,不过可以自己设置首项值,如:这里MALE为5的话,FAMALE与SECTRET的值就为6和7。 ?四、转义字符 ?需要注意的是最后两个。 ? ?五、选择语句、循环语句 5.1选择语句 简单的选择语句if、else,举个栗子:好好学习好工作,不好好学习卖红薯。
5.2循环语句 敲100000行代码成为大牛
六、数组 字符数组的大小(多有不足,待补充):
运行演示: ?七、操作符 按作用对象数量可分为单目运算符、双目运算符、三目运算符 单目操作符: 例:!逻辑反 双目操作符: 例:+??俩东西 三目运算符: 例:?:仨东西 (a)?b:c a真执行B,假执行C 逗号表达式:从左向右依次计算,整个表达式的结果是最后一个表达式的结果。 举个例: 八、C语言关键字 auto: break case char const continue default do double else enum extern float for goto if int long register return short signed?? ?? ? 有符号 unsigned? ? 无符号 sizeof static struct switch typedef? ? 类型重定义 union void volatile?? ?? ? C++里面用 while typedef:类型重定义?? ?? ? 其实就是重新起一个名 九、static static有修饰局部变量、全局变量、和函数的区别,那针对这三种情况展开讨论 9.1static修饰局部变量 ?这是在test函数中没有加static的情况,如果加了static,再来试一下: ?对于第一个没有static修饰的n,在test函数中,每次执行过 test 之后就会被释放。 而对于加了static修饰的n,在第一次执行完static int n=1这个语句之后,相当于把int n等于1的值保存在了静态区,这点在最后进行总结。 9.2static修饰全局变量 我们知道,全局变量的作用域是整个程序。 而,extern修饰变量的声明。? 举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern?int v。就像: ?而经过static修饰之后,那么这个全局变量的作用域就只能在本.c文件下使用了,演示一下: 可以看到,同样的代码,但是后者用了static 来修饰这个全局变量。那么在test.c中就不能用了。 ?9.3static修饰函数 static经过我们上面的演示,它起的好像都是限制“作用范围”的作用,那static修饰函数我们也来演示一下: 在没有static修饰的时候,通过extern声明使用test1.c的函数Add可以达到通过函数计算两者和的目的,那加上static后呢?? ?由此,我们对上述进行一个总结: ?十、define定义常量和宏 #define又称宏定义,标识符为所定义的宏名,简称宏。标识符的命名规则与前面讲的变量的命名规则是一样的。#define 的功能是将标识符定义为其后的常量。一经定义,程序中就可以直接用标识符来表示这个常量。 宏所表示的常量可以是数字、字符、字符串、表达式。其中最常用的是数字。 下面举几个例子来说明#define定义常量和宏
?十一、指针 提起指针,相信有很多同学学C语言都是被指针给劝退了,(因为当初我也是),还记得有一天下午看到指针,哭了,看哭了。不得不说很多人为了流量就用指针来吓人,我当初看到的教学视频,它上来给我将二级指针,三级指针。当时就被恶心到了。但是,指针其实多多理解,也不是很难。下面就讲解一下在下对于指针的一些拙见,希望能帮到大家一些。 指针,其实它就算地址,我们知道,在使用计算机进行一些操作的时候,肯定就会有数据来保存在其中,而保存的数据,要想及时反映出它所在的位置,就需要有一个属于它的编号,这个编号,就称为指针。 大家知道,int型的指针,在内存中占4个字节,那这四个字节具体是怎样的呢,我就来演示一下: ?
?pa中保存的实际上是a的地址,就是0x00F3FE84但是通过这个地址,可以改变这个地址里面的值。 其实pa自己也有地址,它保存在内存的另一片空间 注:在32位操作系统下,指针的大小均为4字节(因为32位就算4个字节) ? 通过这里就可以观察到。? 刚学指针,水平尚低,还望大家多多包涵,多多指正。 十二、结构体 我们生活中是多种多样的,一个人的各项信息能够用代码呈现出来,少不了结构体的贡献。 例如,在描述一个学生的信息时,可以包含姓名,学号,年龄,成绩。利用结构体可以很好的进行描述。 例如在描述 张三,171,20,96.5 和 李梅,172,19,96.4这两组数据时,可以如此定义:
运行结果如下: ?以上就算对于C语言基础知识的一些概况了,代码让我们生活的世界更加精彩,真的是科技改变了我们的生活。奋斗了呀!共勉! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:53:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |