首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • C语言——指针(4

    一. qsort使用举例 1.1 使用qsort排序整型数据 qsort是C语言中的一个库函数(quick sort 底层使用的是快速排序的思想)。 = 0; for (i = 0; i < sz; i++) { printf("%d ", arr[i]); } } int main() { int arr[] = { 2,3,5,4,1 #inculde <stdio.h> int main() { int a = 10; printf("%d\n", sizeof(a)); //4 printf("%d\n", sizeof a); //4 printf("%d\n", sizeof(int));//4 return 0; } 4.2 strlen strlen 是C语言库函数,功能是求字符串长度。 int main() { char arr1[3] = { 'a', 'b', 'c' }; //a b c char arr2[] = "abc"; //a b c \0 printf("%

    16310编辑于 2025-10-13
  • 来自专栏技术分享

    C语言(4)----数组

    也就是这样: 4.数组的下标(以一维数组为例) C语⾔规定数组是有下标的,下标是从0开始的,也就是说当有a个元素的时候,最后一个元素的下标并不是a,而是a-1。 对于int arr[10] = {1,2,3,4,5,6,7,8,9,10};这个数组,使用arr[3],访问出来的结果就是4。 5.一维数组和多维数组 数组在维度上可以分为一维数组和多维数组。 所以第3行第2列指的并不是4而是6。 6.数组的输入和输出 单个数组元素我们可以访问,那么整个数组我们也是可以访问的,很简单,只需要用上循环即可。 8.C99的变长数组 上面我们认识的数组都是放入的常量值,那么我们可不可以放入变量值呢?这里就给出了C99的变长数组来提供给我们放入变量值。 也就是这样,a和b都是变量。

    25110编辑于 2024-06-18
  • 来自专栏C++破军之路

    C语言基础(4

    int arr[10]={1,2,3,4,5,6,7,8,9,10}//定义一个整型数组最多放十个元素 c语言规定,数组中的每个数都有下标,下标从0开始计数。 ---移动的是二进制位 例如:一个整形数字2对应的二进制数为10,它对应的比特站位是: 其向左移动一个比特位后会变成  二进制100对应的十进制数字为4,故结果为4。 stdio.h> int main() { int a =10; printf("%p\n",&a); //%p是专门用来打印地址的 int* pa=&a //pa是用来存放地址的,在c语言中 (一个二进制位等于一个比特位) 例:32位机器上存放一个地址需要32个比特位,也就是说需要4个字节,所以指针的大小为4个字节。64位机器同理。 故,指针的大小与平台的类型有关, 六、结构体 结构体是c语言中特别重要的知识点,结构体使得c语言能创建出新的类型。 比如描述学生,学生包含:名字+年龄+性别+学号这几项信息。这里只能用结构体来描述。

    34110编辑于 2024-06-04
  • 来自专栏C++

    C语言(指针)4

    按道理说数组名是数组首元素的地址,那 sizeof(arr)求出来应该是4个字节的大小,这里为什么是40个字节的大小呢? 如果你并没有这个疑惑,可能是你学的非常扎实,我们一起继续努力;也可能是你学的还不太扎实,或者没有好好看我之前的文章,罚你去看 —> C语言(指针)1 。 可以看到,对数组首元素的地址+1增大了4个字节,对整个数组的地址+1增大了40个字节(其中地址是16进制表示),这一点相信看过我之前文章的小伙伴都已经非常清楚了,就不再赘述了。 在用上面的方法求数组内元素个数的时候,最好紧跟在数组的定义后面写; (3) 形参即使写成数组的形式,本质上也是一个指针变量; (44.冒泡排序 学了上面的内容,我们就可以用数组和指针的知识来实现一下冒泡排序。我们这里写升序。

    28210编辑于 2024-10-16
  • 来自专栏C语言

    C语言C语言 4 个编译过程详解

    C语言的编译过程涉及几个关键步骤、概念和细节,每个步骤都有助于将人类可读的源代码转换为可执行的机器码。以下是详细的解释和示例:一、什么是编译?编译是将源代码转换为目标代码的过程。 编译:mov eax, 42概念:编译器 (gcc, clang) 将预处理后的源代码翻译成特定于目标体系结构的汇编语言。细节:执行词法分析、语法分析、语义分析和优化。 hex 和 .bin 文件通常不是C语言编译过程的直接产物,而是在嵌入式系统开发中常见的文件格式,用于存储程序或数据的二进制表示。 因此,它们不属于C语言编译过程的标准阶段,但是在嵌入式开发中是非常常见的文件格式。.hex 文件:通常用于存储以十六进制格式表示的固件或程序映像,适用于多种嵌入式系统和芯片编程器。. 编译:将C源代码转换为汇编语言。汇编:将汇编指令转换为机器码。链接:将机器码与标准库函数(如 printf)结合,生成最终的可执行文件。

    2.8K10编辑于 2024-12-07
  • 来自专栏C++初阶高阶

    C语言初阶-----指针(4

    return 0; }  过去我们有一个二维数组要传参给一个函数的时候,可以这样写: #include<stdio.h> void Print(int arr[3][5], int r, int c) { int i = 0; for (i = 0; i < r; i++) { int j = 0; for (j = 0; j < c; j++) { printf("%d " arr, 3, 5); return 0; } 现在学了二维数组传参,可以这样写: #include<stdio.h> void Print(int (*arr)[5], int r, int c) { int i = 0; for (i = 0; i < r; i++) { int j = 0; for (j = 0; j < c; j++) { printf("%d " = Add(2, 3);//函数名调用 printf("%d\n", c); //5 int d = (*pf)(3, 4);//函数指针调用,这里的(* ) 可以不加,也可以加很多个* printf

    16110编辑于 2025-10-22
  • 来自专栏修也的进阶日记

    C语言】错题本(4)

    题目及选项: 答案解析: A: B: C: D: 三. 题目及选项: 答案解析: 数据在计算机中是先转换成补码,再进行运算的!

    13410编辑于 2024-04-01
  • 来自专栏Initial programming

    初识C语言·指针(4

    ret); return 0; } int main() { int input = 0; printf("**1 Add 2 Sub*****\n"); printf("**3 Mul 4 { case 1: Fun(Add); break; case 2: Fun(Sub); break; case 3: Fun(Mul); break; case 4: 说实话博主也不大清楚,可能涉及到C语言中对它的定义? 但是我们现在应该考虑的是如何传这个参数,其实很简单,只需要在写一个函数,函数的参数是两个指针,返回类型是int就行了。 int main() { int arr[10] = { 1,5,6,2,9,8,7,0,3,4 }; bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof

    22210编辑于 2024-10-16
  • 来自专栏学习

    C语言---深入指针(4

    回调函数 //回调函数就是通过函数指针调用的函数 //这个在之前的转移表-计算器里面很明显,通过函数指针数组内的函数指针进行函数的调用 // // // 将这四段代码分装成一个函数,一个代码将这4个问题都解决 ****\n"); printf("********** 1.add 2.sub***********\n"); printf("********* 3.mull 4. break; case 3: Calc(Mull); break; case 4: ) // { // printf("%d ", arr[i]); // } //} //int main() //{ // int arr[] = { 3,1,7,9,4,2,6,8,0 // a,b,c,d,c,e,f a,b,c,q 因为d的ASCII小于q的,所以第一行的字符串就小于第二行的字符串 strcmp比较的不是长度,比较的是对应位置的字符ASCII大小的 qsort的结构

    24110编辑于 2024-09-23
  • C语言的灵魂——指针(4)

    比如: #include<stdio.h> int main() { char ch='a'; char *p=&ch;//存放字符地址的指针变量 printf("%c\n",*p); return = '\0') { printf("%c", *p); p++; } return 0; } 第二种我们知道是循环打印即一次打印每个字符,而第一种有些人就有疑问了,为什么打印的不是 *P 而是 但str3与str4是一样的这是为什么呢?其实上面也说过了就是两个字符指针指向或存放了相同的字符串,同一字符串首地址是相同的所以str3自然与str4是一样的喽。 col;j++) { printf("%d ",arr[i][j]); } printf("\n"); } } int main() { int arr[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 p+i)+j)); //printf("%d ",arr[i][j]); } printf("\n"); } } int main() { int arr[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7

    16810编辑于 2025-12-23
  • 来自专栏汇编语言

    C语言之指针详解(4

    ************************\n"); printf(" 1:add 2:sub \n"); printf(" 3:mul 4: 输入操作数:"); scanf("%d %d", &x,&y); ret = mul(x, y); printf("ret = %d\n",ret); break; case 4: ************************\n"); printf(" 1:add 2:sub \n"); printf(" 3:mul 4: (add); break; case 2: calc(sub); break; case 3: calc(mul); break; case 4: const void* p2) { return (*(int*)p1 - *(int*)p2); } int main() { int arr[] = { 1, 3, 5, 7, 9, 2, 4,

    22510编辑于 2024-10-21
  • 来自专栏全栈程序员必看

    mt4编程语言 c语言,MT4编程之MQL4编程语言介绍

    语言介绍 MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略。 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。 MetaQuotes Language Dictionary 是MQL4语言的帮助工具,它包含了我们在使用工程中所有可能用到的函数。 语法简介 MetaQuotes Language 4(MQL4)的语法和C语言比较类似并且是一款面向过程语言。如果你C语言基础非常好很快就能上手。 除了以下这些特点和C语言不同: 没有运算地址; 没有 do … while 语句; 没有 goto … 语句; 没有 [条件][表达式 1]:[表达式 2] 语句; 没有复合数据类型 (结构); 复合负值是不允许的 = (不等于) 编程工具 MT4采用自带集成MetaEditor作为代码编译器。简单讲,编译器就是将“高级语言(MQL4)”翻译为“机器语言(低级语言)”的程序。

    7.2K20编辑于 2022-08-28
  • 来自专栏C/C++、数据结构、算法

    C语言:深入理解指针(4)

    4.如果想要完成逆序,将int_cmp的代码return(*(int*)p1 - *(int*)p2)中的p1和p2交换即可。 一般用于指针的初始化 \0:\ddd形式的转移字符,本质也是0,在字符串中作为结束标志,ASCII码值为0 0:数字0 '0':字符0,ASCII码值为48 null/NUL:本质就是\0,作为字符串结束标志 五、C99 中的变长数组         在C99标准之前,C语⾔在创建数组的时候,数组大小的指定只能使⽤常量、常量表达式,或者如果我们初始化数据的话,可以省略数组⼤⼩。 C99中给⼀个变⻓数组(variable-length array,简称 VLA)的新特性,允许我们可以使⽤变量指定数组大小。 遗憾的是在VS2022上,虽然⽀持⼤部分C99的语法,没有⽀持C99中的变⻓数组,没法测试;

    32710编辑于 2024-02-17
  • 来自专栏番茄_C语言

    c语言每日一练(4)

    (arr)); return 0; } A.4 B.16 C.20 D.5 解析:这是一道基础题,就考验你的基础扎不扎实。 arr这个数组看似有5个元素,实际上只有4个元素,为什么?因为arr数组中有一个逗号表达式,而逗号表达式的运算规则是从左往右依次计算,整个表达式的值为最后一个表达式的值。 4个整型元素所占的字节数为4*4=16,因此答案为B 3、以下叙述中正确的是( ) A. 只能在循环体内和switch语句体内使用break语句 B. C选项跟continue语句的作用完全不符,continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环,故C错。D选项大错特错,continue语句设计出来就是给循环用的。 综上所述,答案选D 5、在C语言中,以下正确的说法是( ) A. 实参和与其对应的形参各占用独立的存储单元 B. 实参和与其对应的形参共占用一个存储单元 C.

    45310编辑于 2024-01-19
  • 来自专栏C语言入门到精通

    C语言输出4*5的矩阵

    例14:C语言实现输出4*5的矩阵。 解题思路:可以用循环的嵌套来处理此问题,用外循环来输出一行数据,用内循环来输出一列数据。要注意设法输出矩阵的格式,即每输出完5个数据后换行。       printf("%d\t",i*j);//输出数      }   }    return 0;//函数返回值为0  } 编译运行结果如下: 1       2       3       4        5 2       4       6       8       10 3       6       9       12      15 4       8       12      16       C语言输出4*5的矩阵 更多案例可以go微信公众号:C语言入门到精通,作者:闫小林

    3.2K2828发布于 2020-11-23
  • 来自专栏C语言程序指南

    c语言入门指南(4)(c语言程序结构——顺序,分支,循环)

    C语言程序结构c语言将现实中的逻辑关系抽象出来了三种结构,分别为顺序结构,分支结构,循环结构。以日常生活为例,我今天早起要刷牙,洗脸,上厕所,这是顺序结构。我中午可能吃面也可能吃饭,这是分支结构。 如果我们将这个顺序颠倒,会发现程序报错​编辑由此可以看出C语言的顺序结构的特点。从main函数进去,按从上往下的顺序依次执行。 分支结构分支结构分为单分支结构和多分支结构,c语言用于分支结构的语句有if()语句,switch()语句。 int main(){int x, y, z;x = 3, y = 4,z = 5;if (x = 3){printf("关注\n");}if (y = 4){printf("博主\n");}if (z int main(){int x, y, z;x = 3, y = 4,z = 5;if (x = 3){printf("关注\n");}else if (y = 4){printf("博主\n");}

    59410编辑于 2024-06-03
  • 来自专栏老九学堂

    C语言:取整&4种函数】详解

    总结:【C语言】取整默认采用的是"0向取整"。 02  【trunc - 0向取整】 trunc 的头文件是 :#include<math.h> 注意:对于「C语言」来说它实际上是有一个取整函数的,相信很多小伙伴们是不知道「C语言」有这个trunc取整函数的 说明:在C语言当中默认采用的是0向取整的方式来进行的。

    4.7K30编辑于 2022-09-13
  • 来自专栏半生瓜のblog

    C语言二级错题积累(4)

    在栈中,栈项指针的动态变化决定栈中元素的个数。 详细设计的人物是为软件结构体中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。 扇出指由一个模块直接调用的其他模块个数。 按照传统的数据模型分类,数据模型分为层次模型、网状模型、关系模型。 数据库管理系统能实现对数据库汇总数据的查询、插入、修改和删除,这类功能称为数据操纵功能。 机器周期的同步标准是CPU访问存储器一次所需要的时间。 一个正在运行的进程由于所申请的资源得不到满足,进程将

    64910编辑于 2023-05-12
  • 来自专栏小北的博文

    C语言笔记---(4)数据类型篇

    C 语言的每一种数据,都是有类型(type)的,编译器必须知道数据的类型,才能操作数据。所谓“类型”,就是相似的数据所拥有的共同特征,那么一旦知道某个值的数据类型,就能知道该值的特征和操作方式。

    30740编辑于 2022-03-28
  • 来自专栏全栈程序员必看

    c语言入门教程–-4运算符

    c语言入门教程–-4运算符 算术运算符 ? 关系运算符 ? 这个一般都是配合if条件语句使用的 逻辑运算符 ?

    29720发布于 2021-04-07
领券