![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《C语言程序设计》
default111
这个作者很懒,什么都没留下…
展开
-
位运算
1. &按位与:即两个二进制数的&判断作用:清零(?)找一个与目标数1位全部为0的数&后得到0取指定位:选择一定的数&使只保留所需位,选择时让所需位数对应相同2. |按或与,|判断3. ^异或:值不同取1,相同取04. ~取反5. <<左移,相当于✖️2 >>右移,相当于除以2,但注意负数由于最高位是1,不同系统补位不同整数a,保留从右端第m位开始的n位,b=a>>(m-n...原创 2020-09-04 09:44:36 · 98 阅读 · 0 评论 -
结构体
struct 结构体名 {成员}变量;其中 . 叫成员分量运算符结构体数组定义,花括号和逗号{{,,…},{,,…}} 占内存长度为各成员占内存长度之和 结构体指针:(*p).num等价于p->num等价于变量.成员。注意p->n++和++p->n,先用再加和先指向,自加,再用 指向结构体数组:p=stu,p指向第一个元素,p+1指向第二个元素,(++p)->num即p先指向下一个元素(相当于数组名+1)再得到指向的成员值 void print(struct ...原创 2020-09-02 13:07:35 · 233 阅读 · 0 评论 -
指针
指针即变量的地址 & 指针变量 指针变量i,则*i为i指向的变量 定义 int,char…… *p,赋值 p=&a *:取指针指向变量;&:取变量地址。二者优先级相同,自右向左 不能写:int *temp;*temp=*a,只能写temp=*a,因为temp指向的值是不可预见的,有可能破坏正常系统工作1.指针与数组int *p ; p=&a[0]等价于int *p ; p=a,数组名即第一个位置的指针,因此在前章,数组传给形参若改变会改变原值,因为传递的是.原创 2020-08-31 15:19:04 · 101 阅读 · 0 评论 -
预处理
宏定义#define 标识符(宏名) 字符串 可以减少不必要的编译 #ifndef……即反过来 #if 表达式 同理 程序段1 (#else 程序段2 ) #endif 只要前面定义了标识符 #define 标识符 (可以没有内容),就算有了,但要是指定为0,就为否 #ifdef 标识符 2.条件编译编译时一起编译,得到新源程序,得到一个目标文件 如果2文件要用到3文件,在1文...原创 2020-08-28 14:41:32 · 93 阅读 · 0 评论 -
函数
实参的求值顺序,编译器不同而不同,printf也是(i,i++)(i,++i)(本系统:从右往左)。 数组名作参数,调用:function(a),定义:function(int b[]),常用定义function(int b[],int n)来记长度,由于实际传的是指针,形参变实参也会变。 多维数组,可省略第一维大小,不能省略二维及之后的大小关于存储: 全局变量,从定义到程序结束有效 数据存储类别分为静态存储类和动态存储类,具体4种,auto,static,register(最新c++11已废原创 2020-08-26 14:46:40 · 109 阅读 · 0 评论 -
数组
关于赋值:赋初值,长度与提供初值个数相同,可用a[]={x,x,...} a[10]={1,2},则a0和a1被赋值,后面全为0 输入数组,&a[i]等价于a 字符数组可以省略花括号,直接str[]="",但不能str=""关于字符数组:字符数组注意末尾\0,为判断结束的标志,自动添加。 字符数组可以用%s输出,输入用数组名即可,不用加& 字符数组输入空格被认为是分隔符 字符数组,puts和gets,测试,能不能输入空格字符数组的函数操作:strcat(str1.原创 2020-08-24 16:23:25 · 117 阅读 · 0 评论 -
scanf
输入与长度不匹配:scanf("%3d%3d",&a,&b);输入123456则a=123 b=456同理字符,scanf("%3c",&ch);输入abc则ch=a原创 2020-08-11 15:37:16 · 373 阅读 · 0 评论 -
printf
printf一些容易忘的%c字符%o八进制%x十六进制(X也行,输出为X)%u无符号数%s字符串,其中后面用字符数组名即可,因为打印时传递的是地址。因此在使用指针的指针时,字符串*p,整型等用**p%ld,lo,lx等长型关于输出样式的处理:%md,mc等,m为宽度,超过m则可无视,小于m则在左侧补空格%ms同上,%-ms,靠左,在右侧补空格%m.ns,取左段n个字符,m列,左侧补空格%-m.ns同上,右侧补空格%m.nf和%-m.nf...原创 2020-08-11 15:35:21 · 106 阅读 · 0 评论