您的位置:首页 > 编程语言 > C语言/C++

C语言学习入门 (一) 编译、链接、关键字、数据类型、printf函数

2014-12-02 15:08 369 查看
参考:http://www.cnblogs.com/mjios/category/459066.html

编译文件:cc -c one.c two.c  生成.o目标文件链接文件:cc one.o two.o     默认生成 a.out 执行文件指定生成的可执行文件名   cc -o one one.o 
连续编译、链接:cc one.c      cc -o one one.c    中间生成的.o文件会被删除,最后生成执行文件cc one.c two.c   源文件超过一个时,目标.o文件便不会被删除(one.c 和two.c 需要一个main入口)以后可以只编译更改的源文件  cc one.o two.o three.c, 生成可执行文件cc -c a.c -o a.o  编译生成a.o
C语言32个关键字:auto short double int long char float unsigned signed static volatile const
return void 
struct enum  typedef unionif  else  do while  continue forswitch case break register externdefault goto sizeof
数据类型:


占用空间


当数值比较小(在char的取值范围内),用char 比用int 更节省内存开销,因为它只占1个字节char c = ‘A’;与 char c = 65; 是等效的。一个汉字占两个字符,用char是不行的,需要用字符数组来存储(c语言中没有字符串类型)。
局部变量可以在声明时不初始化,后续直接使用,与java不同这样做不太好,因为这可能是一个随机的垃圾值,而不是0。
可以在基本数据类型的前面加一些修饰符,也有人称之为限定符,一样的意思。有以下4种类型修饰符:
short  短型
long  长型
signed  有符号型     包括 正负数和0   
unsigned  无符号型         正数和0 
short int    <==> shortlong int 、long long int 、long long    <==> longlong double  <==> doublesigned  [int | long | char] unsigned [int | long | char] 
// 可以连续使用2个longlong long ll = 10;
// 下面两种写法是等价的signed int si1 = 3;signed si2 = 3;
// 下面两种写法是等价的unsigned int us1 = 4;unsigned us2 = 4;
// 也可以同时使用2种修饰符signed short int ss = 5;unsigned long int ul = 5;
unsigned char c1 = 10;signed char c2 = -10;
long double d1 = 12.0;
c 语言中的进制:   二进制:int a = 0B(b)1100 ;     八进制: int b = 027;   十六进制:int c = 0X(x)AF3;  十进制:不加前缀  int d = 27;
printf(“%d”, a);      printf(“a=%d, b=%x”, a, b);%ld,long int%lf,long double%4d,表示的结果占4位及以上,原样输出;反之,在左边补空格,补满至4位 %-4d,  表示的结果(算上符号-)占4位及以上,原样输出; 反之,在右边补空格,补满至4位 %.2f  输出两位小数,默认是6位  %p    输出内存的地址,,   如:printf(“变量a的地址是:%p”, &a)%u,  输出的数值相当于是unsigned所修饰的。如果数值本身为负数,而要用%u来输出,     那么就需要转换:在不同的编译器,负数转成相应位数的二进制形式,     再去掉高位的符号位被0%c, 输出一个字符%s, 输出一个字符串
例,类型转换:#include <stdio.h>

int main(int argc, char *argv[]) {
short int a = 10;
unsigned long b = 1010001000L;
long c = a;
int d = a;
double e = b + 5.5;
int f = e;
printf("%d", f);

}这里将double类型的e赋给int类型的f,完全没有问题;最终输出:1010001005
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: