001-C
2:第一个c语言程序:
编译命令
cc -c 文件名.c
编译过后 生成一个.o的文件
把目标.o文件与系统自带的函数库合并,生成一个可执行文件
cc文件名.o
生成一个.out文件 unix可执行文件
双击 使用终端打开 或者
./文件名.out 使用命令打开当前文件
3:第二个
mkdir 002 新建一个002的文件夹
touch xx.c 新建一个.c文件
open xx.c打开xx文件
cc 文件名.o -o test 更改默认的a.out为test.out
4:c 关键字
32个关键字
特征:全部都是小写
都为紫褐色
标示符
自定义的符号
命名
英文字母大小写 数字 下划线组成
5: 变量
整型 int 占4个字节
字符 char 占1个字节
printf(“%d”,num’) %d 占位符 整数 表示最后放的变量必须是整型 或者%i
%f 表示 float 浮点类型的数据
%.2f 保留两位小数 %.4保留四位小数
%c char 字符类型
6: 变量的作用域
代码执行顺序必须是从上到下 从定义变量开始一直到函数结束
执行变量按照就近原则
用大括号括起来就代表是一个函数块
7:变量的内存分析
1,字节和地址
1GB=1024MB=2048KB=2048*1024B
2,地址分配
从大到小
输出地址用 %p &变量
8: scanf函数
printf输出内容
scanf输入内容
scanf(“%d”,&num);
scanf(“%d,%d”,&num1,&num2);
输入是必须按照逗号分开
如果是按照空格分隔,则需要回车输入
不能输入\n回车符
9: 运算符
+-*/加减乘除
取余% 两个数相除的余数 取余正负性只跟%左边数值正负有关
1/2 =0
a++ 先作赋值运算后+1
++a 先加完再作赋值运算
10: sizeof函数
计算对象的字节数 int 4 char 1 double 8
int size = sizeof(10);
int size = sizeof 10;
11: 关系运算符
1,真假 任何非0值都是真 0为假 c语言没有没有bool类型
2,比较运算 > < >= <= == != 大于 小于 大于等于 小于等于 等于 不等于
int result =a>b; 条件成立 返回值为1 否则返回0
3,运算符优先级
int a = 2==3>1;从左到右 == != 优先级相等 <,<=,>,>=优先级相等 且比==!=大
08
12: 返回值
void int double float char
13: 函数
1,函数不能嵌套声明
2,方法名称不能相同
3,函数必须写到main函数前面 c语言编译器是从上到下执行 可以事先声明函数 void xxx();
4,纯文本赋值 #include “xxx.txt” 相对路径 自己写的文件用双引号,系统自带的用尖括号
14:char类型
一个字节
大写A从65开始
小写a从97开始
一个汉字 三个字节 或者两个字节 看编译器
15:数组 构造类型
只能存放一种类型的数据
int ages[50] ={11,11,11,```}; int ages[5] = {[3]=10,[4]=11 }; int ages[] = {1,2,3,4}; int ages[‘a’] = {1,2,3,4};
数组名作为函数参数 所传递的是地址传递
数组作为参数传递时,会当做指针变量使用 再64位编译器环境下占8个字节
所以想要再函数中知道数组的长度 必须另传递一个数组长度
二维数组
int ages[3][5]={ {1,2,3,4,5}, {}, {}, };
16:指针
char name[] =“it”; char *name2 =“it”;//指针变量name2指向字符串的首字母
内存分三块:1,常量区 存放常量 2,堆 存放对象,3,栈 存放变量
数组是分配再栈中 为 变量 可随意更改
指针 存放再常量区 不可更改
17:返回指针函数
char *test(){}
指向函数指针
(*p)固定写法 代表指针变量p是指向函数
void 指针变量p指向的函数没有返回值
() 函数没有形参
void (*p)();
p = 函数地址;//函数名就代表函数地址 传入函数名即可
调用:p=test;
1,p();
2,(*p)();
3,test();
1,进制
2. int short long signed unsigned
3 位运算
1,& 按位与 二进制中,与1相&保持1 与0相与就为0
2. | 按位或 只要对应的两个二进制位有一个为1时结果就为1否则为0
3,^ 按位异或 对应的二进制位相异 不想用是 结果为1 否则为0
4,~按位取反 取二进制相反的数值
5,<<左移 把正数a的各二进制位向左移动n位
6,>>右移
7,
int temp = 31;//int temp =( sizeof(number)<<3)-1;==sizeof(num)*8-1;==31; while(temp>=0) { int value = num>>temp&1; printf("%d",value); temp -- }
8,字符串
char name[8] = {'i','i','\0'};//严格意义上说 加\0才是真正的字符串 char name[8] = "ii";//也是可以的
9.strlen 计算字符串长度
9,指针 :
10 :变量的作用域
11:结构体
struct Date{ int year; int month; }; struct Date dt = {2014,4};//定义结构体变量
Struct Student{ int age; double height; } stu;
Struct{ int age; char *name; } stu;
struct RankRecord records[3]={ {1,"sss",222}, {1,"sss",222}, {1,"sss",222} }
struct Student{int n;inta;}; struct student stu = {1,22}; struct student *p; p =&stu;
struct Date{int year;int month;int day;}; struct Student{int no;struct Date birthday;}; struct Student stu={1,{2014,2,3}};
12:枚举
enum Season{ spring,summer,autumn,winter }
13:预处理指令
#define sub(n1,n2) n1+n2 int a =10;int b=20; intc = sub(a,b);
14: 条件编译
#if(A==10) printf() #elif(A==5) printf() #else xxx #endif
15:文件包含
16:typedef
1, typedef int MyInt; 2,typedef struct Student{ int age; } MyStu; 3, typedef struct{ int age; } MyStu;//不灵活
17: static,extern
18:递归
class Program { static void Main(string[] args) { //pow(1, 4); int num = pow(2, 2); Console.WriteLine(num); Console.ReadLine(); } public static int pow(int num1,int count) { if (count <= 0) return 1; return pow(num1, count-1) * num1; } }

浙公网安备 33010602011771号