![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C基础
小狮子&
这个作者很懒,什么都没留下…
展开
-
c语言的内存使用
定义一个结构体指针ptr,在内存中申请 sizeof(Info) * num大小的内存。在访问内存的时候,由于是按照Info大小进行申请的,可以使用数组的下标进行快速访问。定义一个结构体Info,原创 2023-11-08 22:14:44 · 160 阅读 · 0 评论 -
C语言面试准备(基础知识)
1.C 语言中static的作用/* 1.修饰全局变量,限制其作用域,防止在其他文件单元中被引用。 2.修饰局部变量,限制其生命周期{函数结束,变量被销毁}只被初始化一次,下一次依据上一次的值。 3.修饰函数,限制函数作用域仅限于本文件,而不能被其他文件调用(被static修饰的函数,内存中只 有一份,普通函数每次调用都会维持一份拷贝)*/ 2.要对绝对地址0x100000000赋值可以用(unsigned int*)0x10000000 = 1234;那...原创 2021-04-05 15:44:39 · 1578 阅读 · 0 评论 -
牛客网笔试输入输出踩坑记录
关于牛客网的笔试题:1.要求输入一行字符,计算其中以空格分割的字符串的个数。比如 aaa bbbb ccc dddd 输出 4此类输入一般考生会直接fgets读入一行,然后处理并输出有多少个符合上述要求的字符串。另一种简单的处理方式是:char buf[128] = {0};while (scanf("%s", buf) != EOF){xxxx}这样也可以处理,比起一次读入一行,难度天壤之别。这个题目跟考生想的差别较大,特此记录,以示警醒!......原创 2022-05-13 16:48:10 · 417 阅读 · 0 评论 -
个人记录:函数指针、交叉编译
1.函数指针,一般有两种初始化方式,第一种是用结构体中的函数指针变量赋值的方式,第二种是使用专门的函数去注册。#include<stdio.h>#include<string.h>//定义一个函数指针类型(一种新的自定义类型,类似于结构体指针)typedef int (*getSum)(int a, int b);//函数指针要指向的函数实体int function_entity(int a, int b){ return a+b;}原创 2022-05-12 09:34:21 · 131 阅读 · 0 评论 -
C结构体指针与堆内存的配合使用
1.声明一个结构体,然后申请这个结构体大小的整数倍m大小的内存,地址记为ptr2.声明一个该结构体指针类型的变量pool_memory,使其指向强制烈性转换后的ptr3.使用for循环,对内存进行数据初始化,然后尝试对初始化后的值进行输出。4.此方法可以用于底层开发时,对“数据通道”的操作,即可以用一片内存模拟出不同ID的通道,虽然实际上并不存在,但是可以通过指针的偏移量来控制访问指定空间的内存,达到虚拟通道的概念。5.demo如下:#include <stdio.h>#原创 2021-12-06 15:48:26 · 550 阅读 · 0 评论 -
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]警告问题及双向链表的地址问题
1.报此警告的意思是,在同一块中的非声明之后不能有声明。请把所有的声明变量放在函数的所有的初始化之前。2.编码误区,C中64位系统的指针大小就是8字节,申请的结构体指针必须按照如下格式进行置空操作。typedef struct information{ int a; char b; ...} Info, *INFO;struct information *in = (struct information*)malloc(sizeof(struct informati原创 2021-12-02 10:01:28 · 5628 阅读 · 0 评论