C语言
amcomputer
内修数据结构机器学习,外练web开发网络安全。
展开
-
深入理解C语言函数传参方式
一 背景如果问C语言函数传参方式,大多数人答案是值传递和地址传递。值传递不改变原参的值,而地址传递(指针)传递会改变原参的值。但实际上所有的传参方式有且仅有一种,就是值传递。值传递和地址传递都是通过拷贝形参的值,值传递比较好理解,直接拷贝形参,而地址传递拷贝的值是指针变量所指向变量的地址。说到指针变量,一瞬间要想到3个概念。1 指针变量所指向变量的值; 2 指针变量所指向变量的地址; 3 指针变量本身自己所占的内存地址。int a = 2;int *p;p = &a;..原创 2021-04-10 11:31:05 · 6223 阅读 · 2 评论 -
代码运行一次的过程
代码运行一次的过程是什么?似乎又回到刚刚学C语言时的场景。听到老师说的比较多的是先预处理,在编译,然后生成可执行行文件。IDE,集成开放环境包括了很多东西,如编译器。突然想起一个段子,老师经常说最厉害的程序员都去优化编译器和写操作系统去了。下面谈谈自己的理解:简单来说,代码运行一次的过程 就是 3码3器 即源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行..原创 2021-04-04 21:35:24 · 279 阅读 · 0 评论 -
C语言动态数组简单实现
#include<stdio.h>#include<stdlib.h>int main(){int i;int num , *ptr;printf("请输入数值大小:");scanf("%d",&num);ptr = (int *)malloc(num*sizeof(int)) ;for (i=0; i<num;i++){ printf("请输入第%d个:",i+1); scanf("%d", &ptr[i]) ; // ptr.原创 2021-03-31 11:53:16 · 216 阅读 · 0 评论 -
C语言链表最简单实现(结构体过渡到链表)
#include<stdio.h>/*01 构建链表02 初始化链表 注意头节点 直接赋值03 输出链表 */struct stu{ int num; float score; struct stu *next;};int main(){struct stu a, b, c, *head;a.num =1;a.score = 89;b.num = 2 ;b.score = 98;c.num = 3;c.score = 99;head = .原创 2021-03-31 10:12:57 · 366 阅读 · 0 评论 -
C语言实现链表尾插法
#include<stdio.h>#include<stdlib.h>/*01 构建链表02 初始化链表 03 输出链表 */typedef struct stu{ int num; float score; struct stu *next;}STU,*PSTU;PSTU create(){ PSTU head, p1, p2; p2 = p1 = (PSTU)malloc(sizeof(STU)); //head = NULL;.原创 2021-03-31 10:08:44 · 855 阅读 · 0 评论