![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
沈金兵
写博客有利于提升自己,巩固知识,与他人相互交流
展开
-
结构体的指针偏移
刚开始工作,接触到大量的结构体指针代码,指针基础不好,遂写了些测试代码,总算搞明白了刚开始工作,接触到大量的结构体指针代码,指针基础不好,遂写了些测试代码,总算搞明白了#include <stdio.h>#include <string.h>#include <malloc.h>typedef struct{ int num; char* str; char body原创 2017-01-04 23:03:47 · 4486 阅读 · 0 评论 -
C语言深度剖析笔记(指针和数组)
第四章 指针和数组4.1指针 · 指针类型的大小一定是当前系统的位数,比如32位系统,sizeof就是4个字节。· 指针里的内容一定是一个地址,即使存放其他数据,都会被当做地址处理。· 指针一旦被定义,类型就确定了(强制转型除外),如int* p,在内存开辟了连续的四个字节的空间,这四个字节里存储的就是p指向的int型变量的四个字节的空间的地址。· 在定义指原创 2017-01-05 18:29:28 · 417 阅读 · 0 评论 -
回调函数
note:忘记是学习了哪个前辈的文章了,觉得写的不错,记下来了当函数指针作为函数的参数,传递给一个被调用函数,被调用函数就可以通过这个指针调用外部的函数,这样就形成了回调一般的程序中回调函数的作用不是非常明显,可以不使用这种形式,最主要的用途是当函数不处在同一个文件中,比如动态库要调用其他程序中的函数就只有使用回调的形式#include/**函数指针的格式为:int(*ptr)转载 2017-01-05 18:42:52 · 400 阅读 · 0 评论 -
长switch-case改写为函数指针调用形式
switch-case结构过长,会引起查看不方便,可以将长switch-case结构改为这种形式这种方法比较适合switch-case分支处理比较整齐的情况。#include "stdio.h"#define FUNC_OK 0x01#define FUNC_FAULT 0x00enum{ PRINTA=0x01, PRINTB, PRINTC}PRINT_TYPE;原创 2017-01-05 18:45:30 · 2439 阅读 · 1 评论 -
&逻辑操作符实现判断的功能
学习shell的if语句时,从多个条件的判断性质想到了一种小技巧,之前都没想到可以这样用。在if语句里面如果有多个判断条件,用&&表示要所有的条件为真,总条件才为真,当判断到某个条件不为真时,就不用判断后面的条件了,所以可以利用这个特性#include int fun1(void){ printf("fun1\n"); return 1;}int fun2(void){ p原创 2017-01-05 19:05:50 · 516 阅读 · 0 评论 -
字符串和数组的转型
#include #include #include /**整型转换为字符串可以用sprintf(str,"%d",int)*数组只能通过算法来转换成字符串,先从5+'0',6+'0'整形转为字符型*字符型数组可以直接转换为字符串,区别只是字符串最后多了个'\0'*另外,字符串是存储在全局静态区的,是常量,内容不能改变,所以定义字符串最好用const修饰*字符型数组是存储在堆栈中的原创 2017-01-05 19:19:28 · 453 阅读 · 0 评论