c语言
文章平均质量分 54
复盘加学习,并且记录学习中遇到的问题和解决方法
秃秃秃秃哇
学习,学习,学习
展开
-
C语言利用联合体判断大小端
【代码】C语言利用联合体判断大小端。原创 2023-09-19 15:10:03 · 200 阅读 · 0 评论 -
枚举体enum 大小计算的测试demo
【代码】枚举体enum 大小计算的测试demo。原创 2023-07-14 15:53:15 · 110 阅读 · 0 评论 -
计算联合体大小的测试demo
【代码】计算联合体大小的测试demo。原创 2023-07-14 15:47:24 · 73 阅读 · 0 评论 -
sizeof和strlen的测试demo
【代码】sizeof和strlen的测试demo。原创 2023-07-14 14:45:41 · 146 阅读 · 0 评论 -
sprintf和snprintf的测试demo
【代码】sprintf和snprintf的测试demo。原创 2023-07-14 14:32:32 · 70 阅读 · 0 评论 -
枚举的测试demo
【代码】枚举的测试demo。原创 2023-07-14 10:06:51 · 80 阅读 · 0 评论 -
C语言的##使用
#在C/C++中具有连接字符串的作用。原创 2023-06-28 11:12:50 · 785 阅读 · 0 评论 -
静态库和动态库制作和使用
静态库制作和使用。原创 2023-02-21 14:55:12 · 80 阅读 · 0 评论 -
C语言(结构体的大小)
C语言(结构体的大小)原创 2022-11-04 17:32:47 · 180 阅读 · 0 评论 -
C语言(结构体和共用体)
结构体和共用体原创 2022-11-04 10:38:22 · 213 阅读 · 0 评论 -
C语言(位域)
位域原创 2022-10-31 14:45:29 · 360 阅读 · 0 评论 -
C 可变参数
c可变参数原创 2022-10-31 09:09:54 · 54 阅读 · 0 评论 -
c语言实现单链表反转
c语言实现单链表反转原创 2022-10-25 15:08:10 · 240 阅读 · 0 评论 -
基本C语言概念
文章目录基本概念引用与指针的区别:static全局变量和普通全局变量的区别static局部变量和普通局部变量的区别static函数与普通函数的区别基本概念引用与指针的区别:(1)引用必须初始化,指针不必初始化(2)引用初始化后不能变,但是指针可以改变所指的对象。(3)不存在空值得引用,但存在空值得指针。static全局变量和普通全局变量的区别相同:存储方式都是静态存储方式不同:非静态全局变量的作用域更大static局部变量和普通局部变量的区别static 修饰的静态局部变量只执行初始化一原创 2022-04-29 04:54:12 · 122 阅读 · 0 评论 -
理解C语言宏定义、预处理等
文章目录宏定义#include指令条件编译宏定义宏定义是高级语言编译器提供的常用语法,其目的是利用某一标识符标识某个文本字符串。在编写程序时,如果程序中反复地使用某个数据或某段程序片段,就可以考虑将这个数据或程序片段定义为宏,然后每个出现该数据或程序片段的地方用宏名替代。选择宏定义来做的好处是程序简洁,可读性好,而且当需要修改这些相同的程序片段时,只要修改宏定义中的字符串即可,不需要修改多处。不带参数的宏定义注意宏定义不是C语句,不需要在行末加分号。带参数的宏定义带参数的宏定义不是简原创 2022-04-27 19:53:36 · 181 阅读 · 0 评论 -
[c语言]warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result
从realloc函数的函数原型:void *realloc(void *ptr, size_t size);realloc返回值文档:可以知道,它返回了一个无类型的指针,按道理说,我不用它的返回值,但是编译器告诉我们,需要用定义一个指针变量来接受它的返回值,并且最后free掉。正确使用代码://Test9.c#include<stdio.h>#include <stdlib.h>#include <string.h>// char *s原创 2022-02-11 03:57:45 · 1977 阅读 · 0 评论 -
[c语言]malloc动态开辟内存空间
文章目录一、malloc开辟空间,realloc增加空间内存二、野指针一、malloc开辟空间,realloc增加空间内存//Test8.c#include<stdio.h>#include <stdlib.h>#include <string.h>// char *strcpy(char *dest, const char *src);// void *malloc(size_t size);// void free(原创 2022-02-11 03:40:02 · 1377 阅读 · 0 评论 -
[c语言]sizeof和strlen区别
//Test7.c#include<stdio.h>#include<string.h>int main(){ char cdata[128] = "hello"; printf("sizeof :%ld\n",sizeof(cdata)); printf("strlen %ld\n",strlen(cdata)); char *p = "hello"; /*p是一个chae *,sizeof来计算原创 2022-02-11 02:48:33 · 171 阅读 · 0 评论 -
C语言中sizeof与strlen区别
C语言中sizeof 与strlen 区别一.本质区别sizeof 和strlen 有本质上的区别。sizeof 是C 语言的一种单目运算符,如++、–等,并不是函数,sizeof 的优先级为2 级,比/、% 等3 级运算符优先级高,sizeof以字节的形式给出操作数的存储空间的大小。而 strlen 是一个函数,是由 C 语言的标准库提供的。strlen 计算的 是字符串的长度。二.使用区别1.sizeofsizeof 的操作数可以是数据类型、函数、变量,表达式使用方式为:(1)数据类型转载 2022-02-11 02:03:41 · 7972 阅读 · 0 评论 -
[c语言]各种指针的定义
一个整形数:int a;一个指向整形数的指针:int *a;一个指向指针的指针,它指向的指针指向一个整形数:int **a;一个有10个整形数的数组:int a[10];一个有10个指针的数组,每个指针指向一个整形数:int a[10];一个指向有10个整形数的数组的指针:int (*a)[10];一个指向指针的指针,被指向的指针指向一个有10个整形数的数组:int (**a)[];一个指向数组的指针,该数组有10个整形指针:int.原创 2022-02-11 01:45:05 · 438 阅读 · 0 评论 -
[c语言]二级指针有哪些不能说的秘密
文章目录一、二级指针相关概念二、使用步骤1.引入库2.读入数据总结一、二级指针相关概念一个指针变量可以指向整型变量、实型变量、字符类型变量,当然也可以指向指针类型变量。当这种指针变量用于指向指针类型变量时,则称之为指向指针的指针变量。这种双重指针如图1所示。图1:整型变量i的地址是&i,将其值传递给指针变量p1,则p1指向i;同时,将p1的地址&p1传递给p2,则p2指向p1。这里的p2就是前面讲到的指向指针变量的指针变量,即指针的指针。指向指针的指针变量定义如下:类型标识符 *原创 2022-02-10 16:16:29 · 82 阅读 · 0 评论 -
C语言指针数组(数组每个元素都是指针)详解
如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为:dataType *arrayName[length];[ ]的优先级高于,该定义形式应该理解为:*dataType *(arrayName[length]);括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *。除了每个元素的数据类型不同,指针数组和普通数组在其他方面都是一样的,下面是一个简单的例子:#include <stdio转载 2022-02-10 14:24:38 · 1061 阅读 · 0 评论 -
[C语言]运算符优先级
一个表达式可以包含多个运算符。在这种情况下,运算符的优先级决定表达式的哪部分被处理为每个运算符的操作数。例如,按照运算规则,表达式中 *、/、以及 % 的优先级比 + 和 - 高。如下列表达式:a - b * c相当于 a-(b*c)。如果想让操作数以不同的方式组合在一起,则必须使用括号:(a - b) * c如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左。例如,算术运算符和操作数的组合方式是从左到右,赋值运转载 2022-02-10 13:56:17 · 153 阅读 · 0 评论 -
[c语言]揭开函数指针的面纱
文章目录一、定义函数地址二、如何定义一个函数指针三、如何使用函数指针四、用函数指针实现一个小练习一、定义函数地址如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配了一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。在这里插入代码片函数名就是地址,这和数组名就是地址类似。二、如何定义一个函数指针跟普通变量一样:int a;int *p;char c;char *p;int getData(int a,int b);int (*p)(int a,in原创 2022-02-10 03:45:21 · 236 阅读 · 0 评论 -
[c语言]数组指针和二维数组能擦出怎样的火花
文章目录一、二维数组二、数组指针与二维数组的关系三、数组指针作为形参在函数中怎么传参一、二维数组二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解,a 的分布像一个矩阵:0 1 2 34 5 6 78 9 10 11但在内存中,a 的分布是一维线性原创 2022-02-10 02:04:13 · 303 阅读 · 0 评论 -
[c语言]二维数组作为函数的参数是怎样的?
文章目录一、合法写法二、不合法写法三、写一个练习题一、合法写法int arr[]2[3];int arr[][3];这是为什么?因为在第二维大小相同的情况下,形参数组的第一维可以与实参数组不同。这时形参数组和实参数组都是由相同类型和大小的一维数组组成的。二、不合法写法int arr[2][];int arr[][];这是为什么?因为二维数组是由若干个一维数组组成的,在内存中,数组是按行存放的,因此,在定义二维数组时,必须指定列数(即一行中包含几个元素),由于行参数组与实参数组类型原创 2022-02-10 00:46:10 · 927 阅读 · 0 评论 -
对c语言二维数组地址的认知
List item#include<stdio.h>int main(){ int arr[2][3] = { {1,2,3}, {4,5,6} }; printf("arr的地址:%p,偏移后地址是:%p\n",arr,arr+1); printf("arr[.原创 2022-02-09 02:16:43 · 345 阅读 · 1 评论 -
c语言的指针总结
文章目录一、指针相关概念1. 地址与指针2、变量与指针3 、指针变量4、指针自加自减运算二、指针与数组1、一维数组与指针2 、二维数组与指针3、字符串与指针三、返回指针值的函数一、指针相关概念指针是C语言显著的优点之一,其使用起来十分灵活而且能提高某些程序的效率,但是如果使用不当则很容易造成系统错误。许多程序**“挂死”**往往都是错误地使用指针造成的。1. 地址与指针系统的内存就好比是带有编号的小房间,如果想使用内存就需要得到房间编号。图1定义了一个整型变量i,整型变量需要4个字节,所以编译器为变原创 2022-02-09 01:36:34 · 1033 阅读 · 0 评论 -
字符串与指针
字符串的表示形式:数组形式:char string[] = “hello world"; //栈(局部)字符指针形式:char *str = “hello world"; //文字常量区数组形式与字符指针形式都是字符串的表示形式,但是这两种表示形式大不相同。下面以数字形式字符串char string[] = “hello world"; 与指针形式字符串char *str = “hello world”;为例:1、储存方式:(1)字符数组由若干元素组成,每个元素存放一个字符,(2)转载 2022-02-09 01:12:23 · 1163 阅读 · 1 评论 -
c语言的函数总结
文章目录一、函数概述二、函数的定义1. 函数头2. 函数体3.函数定义的形式4、定义与声明三、函数参数1、形式参数与实际参数2、数组作函数参数3、main函数的参数四、函数的调用1、函数的调用方式**2、 嵌套调用一、函数概述构成C程序的基本单元是函数。函数中包含程序的可执行代码。每个C程序的入口和出口都位于main函数之中。编写程序时,并不是将所有内容都放在主函数main中。为了方便规划、组织、编写和调试,一般的做法是将一个程序划分成若干个程序模块,每一个程序模块都完成一部分功能。这样,不同的程序原创 2022-02-08 21:00:21 · 4472 阅读 · 0 评论 -
C语言的数组总结
文章目录一、一维数组1、一维数组的定义2. 一维数组的引用3. 一维数组初始化二、二维数组1. 二维数组的定义2. 二维数组的引用3.二维数组初始化三、字符数组1. 字符数组的定义2. 字符数组的引用3.字符数组初始化4、字符数组的结束标志5、字符数组的输入和输出一、一维数组1、一维数组的定义一维数组用以存储一维数列中数据的集合。其一般形式如下:类型说明符 数组标识符[常量表达式];类型说明符表示数组中所有元素的类型。数组标识符表示该数组型变量的名称,命名规则与变量名一致。常量表达式定原创 2022-02-08 17:26:51 · 1880 阅读 · 0 评论 -
c语言基础知识(3)--链表
文章目录一、链表1.链表定义2.链表和数组的区别及实现3.链表静态添加和动态遍历4.统计链表节点个数及链表查找5.链表从指定节点后方插入新节点6.链表从指定节点前方插入新节点7.链表删除指定节点二、使用步骤1.引入库2.读入数据总结一、链表1.链表定义逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着。恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储。由于分散存储,为了能够体现出数据元素之间的逻辑关系,每个数据元素在存储的同时,要配备一个指针,用于原创 2022-01-24 13:26:10 · 348 阅读 · 0 评论 -
c语言基础知识(2)
文章目录一、结构体1.结构体的定义和使用2.常犯的错误二、结构体指针1.定义和使用2.结构体指针操作学生成绩三、结构体数组四、往期文章一、结构体1.结构体的定义和使用类型不同的数据集合数据多、丰富、大//结构体定义形式struct 名字{};//例如#include<stdio.h>#include<stdlib.h>#include <string.h>struct Student{ int score;原创 2022-01-21 11:27:36 · 310 阅读 · 0 评论 -
c语言中输出字符指针相关问题
转载转载 2022-01-21 09:49:08 · 886 阅读 · 0 评论 -
c语言基础知识(1)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、c语言的输入输出二、新手编程没有思路怎么办?先用汉语写出你要实现的功能,再用编程语言翻译出来三、选择语句与循环语句1、选择语句结构2、循环语句结构四、函数1、什么是函数2、函数的定义3、函数形式参数作用域及生存期总结提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考原创 2022-01-17 13:38:10 · 488 阅读 · 0 评论