C语言系列
文章平均质量分 57
零基础c语言学习笔记
NewSuNess
积极,努力
展开
-
零基础C语言学习(动态内容分配)
*c语言学习笔记(二十一)*动态内存分配(重点)一、内存的种类:1、栈区:局部变量,函数的形参2、堆区;动态内存分配3、静态区:全局变量,静态变量常创建变量或者数组的时候,在内存中开辟的空间都是固定的,比如数组必须用常数来指明数组内容长度。所以为了克服上面的缺点,就有了动态内存分配:(在堆内开辟)二、动态内存分配函数:1、malloc函数:使用malloc函数开辟动态空间,函数的格式为:void*malloc(size)此函数会开辟一段存储空间,并返...原创 2021-03-15 20:41:37 · 411 阅读 · 1 评论 -
零基础C语言学习
*c语言学习笔记(二十)*指针详解(一)一、字符指针在字符串指针使用时,我们可以不创建字符数组,直接使用指针+内容进行定义,这里的指针仍然指向的是字符串的首元素地址,打印时,由第一个字符串向后打印,遇到\0结束。char* p = "abcdef";p内存放的是首元素地址。所以打印时,输出printf("%s ", p);在上面的代码中,我们是不能通过*p进行解引用再赋值的char* p = "abcdef";*p = 'w'; 这样写的话,程...原创 2021-03-12 15:43:52 · 65 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(十九)*数据存储(二)一、浮点型的存储浮点数家族包括:float、double,long double型这里介绍一个头文件,可以查看数据类型的大小<limits.h>整型和浮点型在内存中的存储方式是不同的:int i = 9;float* pa = (float*)&i;printf("%d \n", i);printf("%lf ", *pa); 对于上面一段代码,在定义了一个整型数时,当用浮点型打印下来...原创 2021-03-11 10:26:11 · 358 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(十八)*数据的存储(一)一、数据的类型在前面的内容里,已经讨论过数据的基本类型,分为整型和浮点型。1、整型包含:int ,char,short ,long, long long浮点型包含:double ,float上面的统称为内置类型,我们也可以通过宏定义或者typedef来定义自己的数据类型,称为自定义类型。假设定义一个int型和一个float型,内容均为10,那么他们在内存里的存储是否有区别呢?答案是肯定的。因为浮点型数据有他自己的特殊...原创 2021-03-09 21:48:41 · 117 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(十七)*初识指针关于指针是什么,网上有很多概念,但是简而言之,指针就是用来存放内存单元地址的变量。一、指针和指针类型首先就是指针类型可以有很多种,但是指针变量的大小是跟平台有关的,32位平台就是四个字节,64位平台就是八个字节。那么不同类型的指针有什么作用呢int a = 10;int* pa = &a;char* pc = &a;printf("%p ",pa);printf("%p ", pc);在上面的代码中,定...原创 2021-03-08 20:12:40 · 75 阅读 · 1 评论 -
零基础C语言学习
*c语言学习笔记(十六)*操作符详解(一)1、/ :表示除运算,结果可以放在整型数据里面(小数点部分内容丢失),也可以放在浮点型数据里面2、% :取模运算,注意取模运算不可包含浮点型数,只能在整数取模中运算。3、右移操作符:右移或者左移操作符移动的都是对应数字的二进制对于移位操作符,有两种移动法(1)算术移位:算术移位考虑原数字的符号位。规则是右边舍弃,左边补符号位(2)逻辑移位:不考虑正负,右边丢弃,左边补0在计算机中通常采用算术移位,而且右移一位有除...原创 2021-03-03 16:39:37 · 71 阅读 · 0 评论 -
C语言实现三子棋小游戏
没想到一个简单的三子棋小游戏耗费了我这么多时间,看来学习还是需要更加努力,学无止境!大概用了三个上午才完成代码的书写和修改而这一切还是在老师的视频讲解的前提下,深感自己做的时候的种种问题。这个小项目就是利用C语言写一个简单的三子棋小游戏,电脑属于傻瓜水平,一点也不会玩并且每一步都是随机生成的,我们要做的就是在3*3的九宫格上,完成三个棋子并联的过程,这样就完成了游戏胜利。程序分为两个源文件,一个头文件,游戏功能函数在game.c里面,游戏流程函数在text.c里面废话不多述,下面上代码:1.gam原创 2021-03-02 17:21:31 · 106 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(十五)*冒泡排序算法算法练习,设计一个冒泡函数,对整型数组进行排序1、什么是冒泡排序算法将两两相邻元素进行比较,然后得到一个新数列,诸如此循环直到所有的元素全部完成两两比较,这就完成了一次冒泡排序;所以假设数组内有是个元素,那么我们需要九次冒泡排序才能全部完成比较。2、数组传参问题:这个问题也已经写过很多遍了,由于比较重要,这里就再写一遍,当数组传参时,传递过去的并不是整个数组,而是数组首元素的地址老师给出的代码如下:void bubble_...原创 2021-02-25 22:17:16 · 82 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(十四)*本节内容:数组一、一维数组的创建和初始化1、数组的含义:数组是一组相同类型的元素的集合;2、数组的创建方式:int(类型)arr(名称)[20(元素个数,需要是常量表达式)];所以数组可以是整型也可以是其他类型的。3、数组不完全初始化时,其余的空位默认为0;另外字符型的数组初始化时,也可以使用字符串型形式初始化,系统会自动按顺序存储字符;还可以利用ASCII值来代替对应字符;char arr[] = "abcde";printf("...原创 2021-02-21 21:22:00 · 142 阅读 · 1 评论 -
零基础C语言学习
*c语言学习笔记(十三)*原创 2021-02-18 20:04:21 · 2037 阅读 · 4 评论 -
零基础C语言学习
*c语言学习笔记(十二)*函数和递归一、递归的含义程序调用自身的编程技巧称为递归;递归作为一种算法在程序设计语言中广泛应用。下面举一个具体例子,创建一个自定义函数可以比较两个数大小并且输出较大值;在源文件主函数中调用,创建一个自定义头文件包含自定义函数;...原创 2021-02-16 21:28:51 · 2147 阅读 · 7 评论 -
零基础C语言学习
*c语言学习笔记(十一)*一、关于形参和实参的含义问题1、实参:真实传递给函数的参数,实参可以是常量,变量,表达式,函数等。无论实参是何种类型的值,在进行函数调用时,他们都必须具有确定的值,以便把这些值传递给形参;2、形参:形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才会实现实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成后就自动销毁了,因此形式参数只在函数中有效。例:创建一个自定义函数int MAX(int x,int...原创 2021-02-15 15:11:07 · 172 阅读 · 1 评论 -
零基础C语言学习
*c语言学习笔记(十)*函数部分c语言中函数的分类:1、库函数2、自定义函数在c语言中包含有很多库函数,访问网站c++网站http://www.cplusplus.com/reference/clibrary/即可查看各个头文件中所包含的库函数任意点开头文件,即可查看包含库函数并且可查看该库函数的功能用法。下面简单的举例其中一个库函数用法:memset库函数,点开网站介绍,查看memset函数功能及用法大致的意思就是填充字符串的内存块,输...原创 2021-02-14 20:53:08 · 220 阅读 · 1 评论 -
零基础C语言学习
*C语言学习笔记(九)* **过年也不能停止学习,祝大家牛年大吉,万事如意!**练习一、编写代码,演示多个字符从两端移动,向中间汇聚。本人写下的一段代码,个人觉得代码极其简陋同时效率很低,但是勉强能够完成题目要求:char arr1[] = "hello world!!!!!!";char arr2[] = "#################";int SL = 0;int SR = sizeof(arr1) / sizeof(arr1[0])-...原创 2021-02-13 20:11:01 · 2340 阅读 · 4 评论 -
零基础C语言学习
*c语言学习笔记(八)*练习二:计算1!+2!+3!…+10!下面是本人写出的一段代码,可能存在bug:int i = 1;int j = 0;int ret = 1;for (i = 1; i <= 10; i++){ ret = ret * i; j += ret;}printf("%d ", j); 运用一个for循环,将各个数的阶乘所得相加到一个变量j上,最后循环终止后输出最终结果j;练习三:在一个有序数组中查找具体的某个数...原创 2021-02-09 22:20:29 · 157 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(七)*一、for循环的初始化,调整、判断都可以省略;但是如果判断部分省略,则判断恒为真,可能造成死循环;关于for循环嵌套,是允许嵌套的,下面一段代码:int i = 0;int j = 0;int line = 0;for (i = 0; i < 10; i++){ for (j = 0; j < 10; j++) { line++; printf("%d.hehe\n", line); }} ...原创 2021-02-08 21:41:48 · 317 阅读 · 1 评论 -
零基础C语言学习
*c语言学习笔记(六)*先看一段代码:while ((ch = getchar()) != EOF){ if (ch < '0' || ch>'9') continue; putchar(ch);} 这里的if语句中的判断条件为字符0和字符9,而并非数字0和9,对照ASCII表,则本段程序意义为仅输出0-9中间的字符;结果如图;for循环部分一、语法for(表达式1,表达式2,表达式3)循环语句;...原创 2021-02-07 21:34:11 · 188 阅读 · 2 评论 -
零基础C语言学习
*c语言学习笔记*(五)while循环:一、关于while循环,学习的时候发现了一个死循环问题:int n = 1;while (n <= 10){ if (n == 5) continue; printf("%d ", n); n++; }此时选择编译运行程序,程序正常编译,但是不会停止;造成死循环的原因是“continue”关键字的问题,continue成立时,往下的程序将不会执行而是直接跳到开...原创 2021-02-06 22:26:50 · 478 阅读 · 0 评论 -
零基础C语言学习
*c语言学习笔记(四)*switch语句内容1.基本形式switch(整形表达式){ case 整形语句表达式: 语句; break;}break用于跳出switch语句;注意:switch语句必须为整形表达式且必须为常量;简单的switch语句例子:int day = 0;scanf("%d", &day);switch (day){case 1:case 2:case 3:case 4...原创 2021-02-05 20:12:48 · 145 阅读 · 0 评论 -
零基础C语言学习
***C语言学习笔记(三)***一、分支和循环分支语句:if switch;循环语句:while for do while;c语言是一门结构化的程序语言:顺序结构,选择结构,循环结构;原创 2021-02-04 20:57:20 · 232 阅读 · 1 评论 -
零基础C语言学习
* C语言学习笔记(二)*指针变量的大小:在32位平台是四个字节,在64位平台是八个字节。一、结构体描述复杂对象的自己创建的一种类型以创建一本书为例struct Book{char name[20];\书的名字short price;\书的价格} ;(结尾的分号不可省略)int main(){struct Book b1={“c语言设计”,55}; printf("书名:%s\n", b1.name); printf("价格:%d\n...原创 2021-02-03 15:09:29 · 186 阅读 · 0 评论 -
使用CSDN写博客的FIRST DAY
***c语言学习笔记***一、static关键字的作用: 修饰全局变量会改变全局变量的作用域;修饰局部变量改变局部变量生命周期。static修饰函数也是改变了函数的连接属性外部链接属性通过static变为内部链接属性;二、宏定义方式#define MAX(X,Y)(X>Y?X:Y)比较X,Y大小值并返回较大值,宏定义比较函数体更简洁三 指针地址的产生及内存分配,内存划分为一个字节byte,一个字节里面包含八位比特位bit;int占四个字节,...原创 2021-02-02 15:43:02 · 217 阅读 · 0 评论