自学记录
XiaBuxiabu
这个作者很懒,什么都没留下…
展开
-
按位运算
·C有这些按位运算的运算符:& :按位的与如果(x)i1 并且 (y)i 1,那么(x & y)i=1否则的话(x & y)i=,0|:按位的或如果()i== 1或(y)i== 1,那么(x l y) i= 1否则的话,(x l y)i== 0“~”:按位取反(~x)i= 1 - (x) i把1位变0,0位变1想得到全部位为1的数:~o对于逻辑运算,它只看到两个值:0和1:可以认为逻辑运算相当于把所有非O值都变成1,然后做按位运算^ :按位的异或如果(x)i原创 2021-04-17 20:50:16 · 170 阅读 · 0 评论 -
二进制文件
其实所有的文件最终都是二进制的文本文件无非是用最简单的方式可以读写的文件more、tail、vi(unix)而二进制文件是需要专门的程序来读写的文件文本文件的输入输出是格式化,可能经过转码文本vs二进制Unix喜欢用文本文件来做数据存储和程序配置交互式终端的出现使得人们喜欢用文本和计算机“talk”Unix的shell提供了一些读写文本的小程序Windows喜欢用二进制文件DOS是草根文化,并不继承和熟悉Unix文化PC刚开始的时候能力有限,DOS的能力更有限,二进制更接近底层文本原创 2021-04-15 23:04:47 · 770 阅读 · 0 评论 -
格式化输入与输出
printf%[flags] [width] [.prec] [hlL] type#include<stdio.h>// [flags] int main(int argc, char const *argv[]) { printf("%9d\n",123);// 9:代表输出字符要占据9个字符的空间 printf("%-9d\n",123);// - :左对齐; printf("%+9d\n",-123);// +:前面要有一个加号 ,强制输出这个加号 printf(原创 2021-04-15 22:02:29 · 157 阅读 · 0 评论 -
项目、头文件
项目在Dev C++中新建一个项目,然后把几个源代码文件加入进去对于项目,Dev C++的编译会把一个项目中所有的源代码文件都编译后,链接起来有的IDE有分开的编译和构建两个按钮,前者是对单个源代码文件编译,后者是对整个项目做链接Dev C++ 允许不用建项目就.c,但是VS等IDE就必须先建立项目再开始.c编译单元:一个.c文件是一个编译单元编译器每次编译只处理一个编译单元头文件:把函数原型放到一个头文件(以.h结尾)中,在需要调用这个函数的源代码文件(.c文件)中#include这个头原创 2021-04-14 21:23:01 · 263 阅读 · 0 评论 -
宏定义
编译预处理指令:#开头的是编译预处理指令它们不是C语言的成分,但是C语言程序离不开它们#define用来定义一个宏#include<stdio.h> // const double PI = 3.14159; #define PI 3.14159 // 定义一个宏 int main( int argc,char const*argv[]) { printf("%f\n",2*PI*3.0); return 0; } #define<名字>原创 2021-04-14 20:38:29 · 255 阅读 · 0 评论 -
静态本地变量
在本地变量定义时加上static修饰符就成为静态本地变量本地变量的生存期,只有在进去函数的时候才有,离开时就没有了,而当函数离开的时候,静态本地变量会继续存在并保持其值静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值int main( int argc, char const *argv[]){ f(); f(); f(); return 0 ; } int f(void) { int All = 1; printf("in %s Al原创 2021-04-13 23:29:51 · 475 阅读 · 1 评论 -
全局变量
定义在函数内部的变量叫本地变量定义在函数外面的变量是全局变量全局变量具有全局的生存期和作用域它们与任何函数都无关在任何函数内部都可以使用它们#include<stdio.h>int f(void);int gAll = 12;//全局变量 ,所有函数都可以去访问使用。 int main( int argc, char const *argv[]){ printf("in %s gAll = %d\n",__func__,gAll);// __func__,是一个字符串%s原创 2021-04-13 23:02:01 · 284 阅读 · 1 评论 -
类型的定义
自定义数据类型:关键字:typedefc语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名。:例如:typedef int Length;使得Length成为int类型的别名。这样,Length这个名字就可以代替int出现在变量定义和参数声明的地方了:即:Length a,b; 等同于 int a , b ;#include<stdio.h>typedef struct ADate{ int month; int day; int year;};原创 2021-04-13 22:39:09 · 231 阅读 · 0 评论 -
结构类型
结构类型:#include<stdio.h>int main(int argc,char const *argv[]){ struct date{ int month; int day; int year; }; struct date today; today.month = 07; today.day = 31; today.year = 2014; printf("Today's date is %i-%i-%i.\n", today.year,t原创 2021-04-13 22:09:54 · 318 阅读 · 0 评论 -
枚举
枚举:一种用户定义的数据类型,它用关键字enum以如下语法来声明:enum 枚举类型名字{名字0,…名字n} ;枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是就是常量符号,它们的类型是int,值则依次从0到n。如:enum colors { red, yellow,green } ;就创建了三个常量,red的值是0,yellow是1,而green是2。当需要一些可以排列起来的常量值时,定义枚举的意义就是给了这些常量值名字。枚举的自动计数#include<stdio原创 2021-04-12 21:08:43 · 149 阅读 · 2 评论 -
2021-03-25
字符数组:char word[] ={‘H’,‘e’,‘l’,‘l’l,‘o’,’!’};字符串char word[]= { ‘H’.‘e’,‘I’,‘l’,‘o’,!’,’\0’};·以0(整数0)结尾的一串字符·0或"\0’是一样的,但是和’0’不同·0标志字符串的结束,但它不是字符串的一部分·计算字符串长度的时候不包含这个0·字符串以数组的形式存在,以数组或指针的形式访问·更多的是以指针的形式string.h 里有很多处理字符串的函数字符串变量·C语言的字符串是以字符数组的形态原创 2021-03-25 22:34:09 · 764 阅读 · 0 评论