C总结是用以指导今后实践的应用文书,c总结英语
C-摘要
# pragma mark-第1章:C语言的基础
void func 1();
voidfunc1()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inta=030//以0开头的数字是八进制数,要转换成十进制进行计算。
intb=a * 10
printf(%d ,b);//此时,打印结果是240
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//注释的嵌套问题
//1.单行注释可以嵌套。
//2.单行注释可以嵌套多行注释。
//3.多行注释可以嵌套单行注释。
//4.多行注释不能嵌套(注意)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
intc=10
c;
c;
//注意加减运算符的两种情况,一种是返回新值,一种是返回旧值。还需要注意的是,无论是返回新值还是旧值,C的值在操作后都会发生变化。
}
#pragma标记-第2章:分支结构
void func 2();
voidfunc2()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inta=10,b=20
bool result=(a 100 b 20);
printf(结果=%d a=%d b=%d\n ,结果,a,b);
//结果如下,注意-短路-情况,逻辑or 也是一样的。
//结果=0 a=11 b=20
// :一假为假,全真为真。
// :一个真,所有假都是假。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
枚举季节{
春天,
夏天=4,
秋天,
冬天的
};
printf(秋=%d ,秋);
//结果:需要注意的是,枚举变量的值是之前的值1。
//秋季=5
}
# pragma mark-第3章:循环结构
void func 3();
voidfunc3()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//随机数公式:A到B范围内的随机数:arc 4 Random()%(B-A 1)A;
inta=10,b=100
in transdom=arc 4 random()%(b-a 1)a;
printf(random=%d\n ,random);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//break;关键字,跳出这一级的循环,后面的一切都不再执行。
//继续;关键字,跳出这个循环,这个循环后面的东西就不再执行,下次继续执行。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for(;) {
printf( for循环中任何条件都可以缺失,但这样写会导致无限循环\ n );
}
}
# pragma mark-第4章:数组
void func 4();
voidfunc4()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inta[5]={ 2,7,4,3,6 };
intb[5]={ 2,7,4 };
intc[5]={ 0 };
intd[]={ 2,7,4,3,6 };
//注意这些区别。如果没有写数字,会自动计算。如果写的是数字,就不能超过。如果未写入,默认值为0。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
intcount=10
//int arr[count]={ 0 };//注意,这个写法不对。变量不能放在数组定义的括号里,可以是常量和宏定义。
intarr[10]={ 0 };
#定义kArrayCount10
int arr 2[karray count]={ 0 };
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//系统不会检测数组下标是否越界,所以我们程序员一定要注意数组下标越界的问题。
//数组是一个整体,不能直接参与运算,只能处理单个元素。通常,凡是使用数组的地方都会使用循环。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//冒泡排序写入
intarray[]={10,23,53,123,3,53,23,123,53 };
intarrayCount=sizeof(array)/sizeof(int);
//双循环
for(inti=0;I array count-1;i ) {
for(intj=0;j数组计数-1-I;j ) {
if(array[j] array[j 1]) {
int temp=array[j];
array[j]=array[j 1];
array[j 1]=temp;
}
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//编写字符数组有两种方法:
charstr1[]={i , P , h , o , n , e };
charstr 2[]= iPhone ;
//默认情况下, \0 作为字符串的结束标记, \0 以双引号的形式附带。在数组形式中,“\0”需要手动添加才能成为字符串。
}
#pragma标记-第6章:函数
void func 6();
voidfunc6()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//调用函数时,只能调用上面的函数,不能调用下面的函数。如果要调用下面的函数,需要在上面声明。
//函数可以嵌套调用,但函数不能嵌套定义。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//函数参数:函数定义中出现的变量,值是从实参中复制的。
//函数的argument:调用函数时传递给函数,Argument的值可以通过指针修改。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//当使用普通变量作为参数时,修改形参的值,实参的值不会改变。
//当一个数组作为参数时,修改形参的值,实参的值也会相应改变,因为当一个数组作为参数时,传递的是数组的第一个地址,操作的是同一个内存区域。
}
#杂注标记-第7章:结构
void func 7();
voidfunc7()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//定义类型
typedef结构{
charname[30];
进口;
floatscore
}学生;
//创建一个变量
Studentstu={ lidaze ,18,100.0 f };
//访问成员变量,使用“.”的方式
printf( name=% s age=% d score=% . 2f \ n ,stu.name,stu.age,stu . score);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//结构可以嵌套。
//访问时,使用“.”依次查找实例变量进行运算。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//结构变量可以直接赋值
//我们可以通过将数组放在结构中来实现对数组的直接操作。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//结构内存占用
//以最大成员变量类型占用的空间为分配单位。
//根据结构成员的声明顺序从上到下分配
//注意:当分配的空间不足以存储成员变量时,分配一个新的空间单元。
}
#杂注标记-第8章:指针
void func 8();
voidfunc8()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//指针的算术运算
inta=10
int*p=
p;
p-;
//指针的操作是移动一个单位的长度。这个长度是多少字节,取决于指针的类型。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//* 的角色:
//在定义指针时,“*”用来告诉编译器它是一个要声明的指针。
//在使用指针的过程中,使用 * 。此时, * 是值运算符,取出内存地址,取出这个空间里的内容。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//指针和数组
intarray[]={123,42,52,5,32,535,35,343 };
int * p1=array
//数组名表示数组的第一个地址。当用指针指向数组时,可以直接将数组名赋给指针变量,而不使用“”符号。
//数组名的使用方式与指针相同
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//指针和结构
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//指针和结构
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//详见:http://blog.sina.com.cn/s/blog_9c2363ad0102uxlw.html。
}
#pragma标记-第9章:结构指针
void func 9();
voidfunc9()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typedef结构{
charname[20];
进口;
}学生;
Studentstu={ lidaze ,18 };
//指针指向结构变量,类型需要相同
学生* p=stu
//使用指针访问结构成员,很特别。使用-
printf(name=%s age=%d\n ,p- name,p-age);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//宏定义
#定义SUM(a,b) ((a) (b))
//使用宏定义时要注意,尤其是带参数的宏。最好在每个参数和最外层加括号,防止出错?
}
# pragma mark-第10章:动态内存分配
void func 10();
voidfunc10()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//存储器分为5个区域:
//堆栈区域
//堆区域
//静态区域(全局区域)
//恒定面积
//代码区域
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//堆内存的管理需要我们手动管理。
int * p=malloc(sizeof(int));//分配一块空间
* p=123
printf(p=%d\n ,* p);
免费(p);//用了就要用。
//免费(p);//不允许过渡释放,同时不允许释放,会造成内存泄漏。
//在开放内存空间的同时,每一个字节都会被清空,效率低,耗时长。
int*p1=calloc(4,sizeof(int));
//重新分配空间
p1=realloc(p1,sizeof(int)* 10);
免费(P1);
}
#pragma标记-第11章:函数指针
void func 11();
voidfunc11()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//函数指针:即指向函数的指针。
//提取函数指针:返回值类型(*)(参数类型)
//void (*)():函数void func11()的类型
//函数类型用起来太麻烦了,给它们单独起个名字吧。
typedefvoid(* func point)();
//使用指针指向函数
FuncPointp=func4
//普通调用函数
func 4();
//用指针调用函数
p();
}
#pragma标记-主函数
intmain(intargc,constchar* argv[])
{
return0
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。