
C语言
jiaruitao777
这个作者很懒,什么都没留下…
展开
-
断言(assert)的用法
我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立){ 程序正常运行;}else{ 报错&&终止程...转载 2019-12-12 15:34:31 · 267 阅读 · 0 评论 -
深入理解内存——学习笔记
内存这个大话题key:心里一定要有内存的逻辑图。程序是什么? 程序 = 代码 + 数据 代码放在Flash中代码段,可变的数据(全局变量、局部变量)放在内存中。运行程序的目的是什么? 得到运行结果; 关注运行过程;既要结果又要过程;为什么需要内存? 程序中有可变数据(全局变量、局部变量),这些可变数据就是放在内存中的。内存如何管理? 每个内存单元都有唯一的地址,通过寻址来...原创 2018-04-14 21:45:54 · 270 阅读 · 0 评论 -
C语言的位操作——学习笔记
1 常用的位操作符 位与&、 位或、 位取反~、 位异或^ 无符号数:逻辑左移、逻辑右移 有符号数:算数左移、算数右移2 特定位清零用 & 例如将a 的bit8~bit15清零,其他位不变a &= 0xffff00ff;3 特定位置位用 | 例如将a 的bit8~bit15置位,其他位不变a |= 0xffff00ff;...原创 2018-04-14 22:18:43 · 238 阅读 · 0 评论 -
C语言的指针学习笔记——1
指针是C语言的精髓在这一篇中仅讨论“指针本身”,指针与数组、函数等之间的关联及使用将在下一篇中讨论。1. 指针是什么? 指针就是指针变量,指针变量也是变量。2.指针能干什么? 变量是用来存放数据的,所以说指针变量也是用来存放数据的。只不过指针变量中存放的数据比较特殊,存放的是内存地址。3.为什么需要指针? 需要间接访问。对于某些内存空间,需要通过地址来进行访问,所以需要其他...原创 2018-06-14 14:48:29 · 180 阅读 · 0 评论 -
C语言的指针学习笔记——2
在上一篇中讨论了指针本身,这这一篇要讨论指针与数组、指针与函数。指针与数组1. 数组的关键符号的理解 例如 int a[100] = {0}; a : 一是数组名,二是数组首元素首地址(等价于&a[0])。 a[0] :数组的第一个元素。 &a[0] :数组首元素首地址。 &a :数组首地址。 注:虽然a与&a的...原创 2018-06-15 16:48:27 · 207 阅读 · 0 评论 -
指针作为函数形参
先来看两个程序程序1#include<stdio.h> void fun(int *p) { int b=22; p=&b; } int main(void) { int a=1; int *q; q=&a; printf("%d\n",*q); fun(q)...原创 2018-08-10 20:49:39 · 23776 阅读 · 5 评论 -
指针和一维数组和二维数组(详细)
一个指针赋值引发的思考?int a[5] = { 0 };int(*c)[5] = &a;a 是一个数组,只用 a 的话,a 就代表数组首元素地址,就是 a == &a[0]。&a是整个数组的地址(虽然值相同,但是意义不同,+1之后的结果也不同)。c 是一个数组指针,就是指向数组的指针,所以给 c 赋值 c = &a;*c自然就等于a, *c是数组a...原创 2019-08-21 15:36:59 · 922 阅读 · 4 评论 -
C语言变长参数表(实参个数可变)
有时传给函数实参的个数不是固定的,而是变化的。就需要编写变长参数表函数。典型的函数就是 pirntf() 函数。编写变长参数表函数目标:编写一个Max函数,返回传入参数中的最大值。从函数的四要素谈起:返回类型函数名参数列表函数体返回类型和函数名与普通函数并无区别。参数列表中,最后的参数用(…) 表示。可用若干个实参取代。int Max(num, ...)返回值是int ...原创 2019-08-21 21:16:03 · 1312 阅读 · 0 评论