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
编译文件: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
相关文章推荐
- C语言学习入门 (一) 编译、链接、关键字、数据类型、printf函数
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- 数据类型,运算符和表达式02 - 零基础入门学习C语言03
- 数据类型,运算符和表达式04 - 零基础入门学习C语言05
- C语言学习入门--基础数据类型(二)
- 数据类型,运算符和表达式04 - 零基础入门学习C语言05
- 数据类型,运算符和表达式05 - 零基础入门学习C语言06
- 数据类型,运算符和表达式01 - 零基础入门学习C语言02
- 数据类型,运算符和表达式05 - 零基础入门学习C语言06
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- 数据类型,运算符和表达式01 - 零基础入门学习C语言02
- iOS学习笔记之-C语言基础02(关键字、标识符、注释、数据类型)
- 黑马程序员C语言学习-关键字、标示符、注释、数据类型、常量变量
- C语言学习入门--基础数据类型(二)
- 数据类型,运算符和表达式02 - 零基础入门学习C语言03
- C语言学习之复合数据类型
- 基本数据类型与表达式6 - 零基础入门学习Delphi07
- 基本数据类型与表达式2 - 零基础入门学习Delphi03
- 基本数据类型与表达式4 - 零基础入门学习Delphi05
- C语言学习笔记(二)--数据类型、常量和变量简介