一个C程序经过的步骤:
1.编写
2.编译
把 .c 文件编译成 .obj 文件, .h
头文件不需要编译,它仅仅是copy用
若main函数中需要调用test()方法,若void test()在main之前,则不用引用;若在其后,则需要事先在main之前声明:void test(); 一般可以把所有的声明放在一个.h开头的头文件中,并在main函数中通过 #include
"test.h"方式引用,不include .c文件,这样防止重复定义出现链接错误。
编译不检查文件之间的关系,只检查语法,编译通过不代表文件之间逻辑关系就是对的。
3.链接
把main.obj 和所有关联的obj和c语言函数库 链接成 .exe 文件,由于c语言是面向过程的,不同于java面向对象可以重复类名,c语言不可以重复函数名。c语言是以函数为核心,是把整个项目所有obj文件链在一起,检查函数名有没有重复。
由于c语言不允许重复定义的,所以在此注意,不可以引用.c开头的包含函数的文件,以免产生链接错误。
4.运行
函数:
prinrf:
用法:printf("my age is %d",26);//%-5.2f
代表保留2位小数,整体占5位,- 代表多出的位数占右边
//一个中文占至少2个字符,所以不能用%c,要用%s
printf("my age is %-4d
,height is %-5.2f ,name is %s ,sex is %c or %s", 26 , 1.55f , "Mr.Legend" ,'A','男');
scanf: 阻塞式函数(不输入不通过)
用法: int a,b;
scanf("%d",&a); //&代表变量a的地址,通过回车确定输入完毕。xcode的控制台只能输入但空格数据,所以可以通过先写再粘贴方式。
scanf("%d %d",&a,&b);//输入之间要求通过空格,回车或者tab来实现输入下一个数。
基本数据类型和类型修饰符:
MJ说的很详细,请参考 基本数据类型
全局变量会自动初始化,局部变量不会自动初始化。
局部变量声明的时候需要先赋值才安全,否则系统自动赋值会不安全。
char的取值范围是-128~+127 或者 ASCII码字符
char a= 65; char b='A' printf("%c,%d",a,b); //结果是A,65
类型修饰符:short long signed unsigned
short a=1; 等价 short int a=1;//c中没有short类型,这只是修饰int,使其范围变小
unsigned b=2;//修饰int型是无符号,即大于等于0的数
short 和int 至少2字节;
long至少4字节;
short不能大于int,int 不能大于long;
char一定为1字节。
基本运算:c语言中一共有34种运算
java中(5>4)返回true:boolean
a=5>4;
c语言中返回1:int a=5>4;
c语言中if(9)条件成立if(-1)调节也成立:非0都为真,0为假
陷阱1:c语言中条件判断最好if(3==a),防止由于少写=等号出现错误
陷阱2:赋值语句误写成a==3;也是对的,所以要手动检查。
逗号表达式
, 运算顺序从左到右
int a=2;int b=0;int c; c = (++b,a*=2,b=a*5);//c=30 sizeof: size_t size=sizeof('A');//4 char d='A'; size_t size=sizeof(d);//1 size_t size=sizeof d;//1 size_t size=sizeof(int);//4 此处不可以写成 sizeof int
原文链接:http://blog.csdn.net/kldxcr