| |
|
开发:
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语言学习笔记...初识 |
2021.10.10 1.写代码 ??????创建项目 ????????????????创建空项目 ??????创建源文件 ????????????????xxxx.c ?源文件 ????????????????xxxx.h ?头文件 ???????编写代码 ????????????????写出主函数(main函数) ?从主函数的第一行开始执行 ?-入口 ????????????????int 整形 ???{}函数体 ????return 0 返回类型 ????????????????打印函数 ?print是一个库函数 ?引用需要打招呼 包含一个头文件 ?#include <stdon.h> ????????????????一个工程中 ?可以有多个.c文件 ?只能有一个main函数 ??????编译运行 2.数据类型 ??????char ?字符类型???????????1 ???????????????sozeof ?关键字 ?操作符 ??? ??????short 短整型 ????????????2 ??????int ?整形 ???????????????4 ??????long ????????????????????4 ??????long long ????????????????8 ??????fioat 单精度 ????????????4 ??????doubt ?双精度 ??????????8 ?????常量和变量 ?????????创建一个变量 ?????????建议格式:???类型 名字 = 0 ????????%d ?%f ?%lf ??????局部变量 和 全局变量 ??????????{}内定义 ??????{}外定义 ??????????当两者名字冲突时 ??{}内引用以局部优先 3.作用域和生命周期 ?????局部:变量所在的范围 ??????全局:整个工程 ?跨文件需要声明: extern int 名字 ?????创建到销毁之间的时间段 ?????程序的生命周期 4:常量和变量 ??????字面常量 ???? ??????const修饰的常变量 ??const int num = 1; 其本质仍是变量 ?定义数组时需要用常量 ??????#define 定义的标识符常量 ???常量 ?不能更改 ??????枚举常量 ???可以一一列举的常量 ? ????????????enum (关键字) ?Sex ?????????????????{male=3,(附初始值) ?????????????????????female, ?????????????????????Secret} ????????????enum Sex s = male; ??//定义s的性别 从sex里取 5.字符串和转义字符 ????????字符串 用双引号括起来的一串字符 ?结束标志是\0 ?在结尾的位置隐藏了一个\0 ???????????????(调试 ?监视窗口) ?????????strlen() 求字符串长度 问题: ??char arr[] = { 'a','b'}; ????? char arr1[] = { "ab" }; ?????????双引号和单引号? ?char? ?数组? 2021.10.11 ????????转义字符 ??\? ??防止?? 被认为三字母词 ???????????????????\' ?\" ???\\ ????\t 水平制表符 ?tab ?????? ?????????ASCII表 ???\ddd (后面表示一个八进制数字) ???\xdd (dd是十六进制数字) 6. 注释 ?// ??/* ?*/ 后者不支持嵌套 7.选择语句 ???if ?else 8.循环语句 ? 9.函数 ?一个模块 , 自己定义 ??返回结果 ??????????返回类型 ???函数名 (参数类型 ?参数名 ) ??????????int add(int x , int y) 10. 数组 ?????????整形数组 ?int ?arr[ ?]= [ 1,2,3,4,5 ] ?????????字符数组 ?cher ?ch [ 5 ] = [ ' a ' , ' b ' ]?不完全初始化 ??其余的默认为 0 ?????????用下标访问 11.操作符 ?????????算术操作符 ?+ - * / ?% ??????/ 用整数除法只能整除 ??当有一个是小数的时候才会得到小数 ?????????移位操作符 ???<< ??>> ??移动的二进制位 ? ?????????位操作符 ?& ??按位与 ???| 按位或 ???^按位异或 ?????????赋值操作符 ?= ??+= ??-= ?%= ?? ?????????单目操作符 ??当+ ?在 a+b 中 ??+为双目操作符 ????????????????! 逻辑反操作 ???????- ?+ ?& ?sizeof ????~ 对一个数的二进制按位取反 1 ?0 ?互换 ????????????????int a = 0 ; ?~a = -1 ??? ????????????????整数在内存中储存补码 ????????????????整数的二进制表示 ??原码 ?反码 ?补码 ??正数三者相同 ??? ????????????????00000000000000000000000000000000 ????0 的补码 ????????????????1111111111111111111111111111111111111 ????按位取反 ?最高位是符号位 ?认为是负数 ????????????????1111111111111111111111111111111111110 ???反码 ?补码-1 ????????????????10000000000000000000000000000001 ????取反 得原码 ?得整数 ??-1 ??????????关系操作符 ????> < ?>= ?<= ?++ ?!= ??????????逻辑操作符 ???&&逻辑与 ??||逻辑或 ??????????条件操作符(三目操作符) ??: exp1?exp2:exp3 ??? 1成立 ?2 计算结果 ?反之 3计算 ??????????逗号表达式 ??逗号隔开的一串表达式 ???从左向右依次计算 结果是最后一个表达式的结果 ??????????下标引用 [ ?] ???函数调用操作符 ( ){函数名后面的()} 12.关键字 ?????????c语言提供的 ?不能自己创建 ?不能用作变量名 ?????????auto 每个局部变量是auto修饰的 ???{ (auto)int a = 10 }自动创建自动销毁 ?????????break ?continue ?do ?case ?????????char ??const ????default 默认 ??? double ??else ?enum 枚举 ?????????extern 声明外部符号 ?????float ?for ??goto语句 ?if ?int ?long ???? register寄存器关键字 ?????????return ???short ??signed有符号的-unsigned无符号 ?????static ??struct 结构体 ?????????switch 语句 ?????union 联合体 ??void 空 ???volatile暂时不讲 ?while ??????????????????????????define ?include ?是预处理指令 不是关键字 ?????????typedef 类型重定义 ?typedef unsigned int u_int ? 可以用别名?复杂类型简单化来代替 ?????????static ?修饰局部 ?出局部之后不销毁 ?改变了生命周期保存值 ? 本质改变存储类型 ????????????????????????内存中 ?栈区 ?局部变量 ?函数参数 ? ????????????????????????????????堆区 ?动态内存的分配 ????????????????????????????????静态区 ?全局变量 ??static修饰的静态变量 ?????????修饰函数 ??修饰全局 ?使全局变量 函数 只能在自己所在源文件内部使用 ????????????????????????本质是将外部链接属性 改成了内部链接属性 2021.10.12 13. #define 定义常量 和 宏 ?????????define ?定义符号 ????宏 ?#define ADD(x,y) ?x+y ??完成替换 14.指针 ? ?????????内存中的储存单元的管理 ??1.怎么编号 ??2.一个内存单元多大空间 ?????????32位 ?64位 ??-多少根地址线 - ?物理线 - 通电 - 0\1 ?将电信号转化为数字信息 二进制序列 ???????????32位 ?00000000000000000000000000000000 ??????????????????????????........ ?????????????????1111111111111111111111111111111111111 ?一共2的32次方个地址编号(内存单元) ???????????一个内存单元是一个字节 ?byte ?一个字符的长度 ????????int main () ??????????????????{ ?int a ?= 10 ; ????????????????//a在内存中分配空间 ??四个字节 ?????????????????????printf( “%p\n” , &a);// ?%p是专门用来打印地址 ?????????????????????int * pa = &a ; ????// pa 是用来存放地址 ?在c语言中叫指针变量 ?????????????????????????// * 说明pa是指针变量 int说明 pa的执行对象是int 类型 ?????????????????????char ch = ' w ' ; ?char * pc = &ch ; ?????????????????????*pa = 20 ; ??????????// * 为解引用操作符 ???????????指针的大小都是 4个字节 (在32位的平台) ???? 15.结构体 ??用来描述复杂对象 ??可以让c语言创建出新的类型出来 ?????????//创建学生类型 ?????????struct Stu ??????????????{ ?char ?name[20]; ???int age; ??double score; ?} ?????????int main () ??????????????{ ?struct Stu ?s = {"张三", 20 , 85.5} ;//结构体的创建和初始化 ?????????????????printf(“ %s %d %lf \n”, s.name , s.?age , s.score)} ??结构体变量.成员变量 ????????结构体指针 ???struct Stu * ps = & s ?????????????ps -> name ??(*ps).name 至此,对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 2:41:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |