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

本文详细介绍了C语言编译文件、链接文件的过程及注意事项,包括如何生成指定的可执行文件名,以及如何连续编译和链接多个源文件。此外,文章还解释了C语言中的关键字、数值比较、内存开销、类型修饰符、进制表示和输出格式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考: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

shortdouble intlongcharfloatunsignedsigned

staticvolatileconst

returnvoid

struct enumtypedefunion

if else dowhile continue for

switch case break

register extern

default 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 <==> short

long int 、long long int 、long long <==> long

long double <==> double

signed [int | long | char]

unsigned [int | long | char]


// 可以连续使用2个long

long 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;


unsignedcharc1 =10;

signedcharc2 = -10;


longdoubled1 =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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值