Loading

C语言笔记

 

.c是C语言源文件,在编写代码的时候创建

.o是目标文件,在编译成功的时候产生  .obj

.out是可执行文件,在链接成功的时候产生

 


 

工具:clang编译器(Xcode3 gcc Xcode4 LLVM (clang))

指令:cc -c 文件名.c  【Tab键】

编译 成功,会生成一个.o目标文件

链接:其实就是把我们的.o目标文件跟系统自带的函数库合并在一起,生成一个可执行文件见

Touch 02-我的第二个C语言程序.c【创建文件】

 


 

1> %d\%i   整数(int)

2> %f          小数(float double)

3> %c         字符(char)

4>  %p            输出地址    

5>   &              地址运算符

 


 

 

Sizeof 作用

用来计算一个变量或者一个常量,一种数据类型所占的内存字节数

基本形式

Sizeof(常量\变量)

Sizeof 变量\常量

Sizeof (数据类型)

不能是sizeof数据类型

 

列:

Double a;

Int b=sizeof(a);

Printf("%d\n:",b);

输出b:8  表示8个字节

 


 

 

scanf接受输入

 

这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>

调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备

(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量

 

  • 注意:数值之间的分隔符是任意的,不一定要用中划线-,可以是逗号、空格、星号*、井号#等等,甚至是英文字母

// 逗号,

scanf("%d,%d,%d", &a, &b, &c); // 输入格式:10,14,20 

// 井号#

scanf("%d#%d#%d", &a, &b, &c); // 输入格式:10#14#20 

// 字母x

scanf("%dx%dx%d", &a, &b, &c); // 输入格式:10 x14x20

 


 

运算符的优先级(从高到低)

 

  • 关系运算符中==!=的优先级相等,
  • <<=>>=的优先级相等,
  • 且前者的优先级于后者:2==3>1
  • 如果在程序中,要改变运算顺序,可以使用()

 

优先级

描述

运算符

1

括号

()[]

2

正负号

+-

3

自增自减,非

++--!

4

乘除,取余

*/%

5

加减

+-

6

移位运算

<<>>>>>

7

大小关系

>>=<<=

8

相等关系

==!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=+=-=*=/=%=

16

位赋值运算

&=|=<<=>>=>>>=

 

 

 

 


 

 

 


 

内存-进制

 

 1 // 输出整数的二进制形式
 2 void putBinary(int n)
 3 {
 4     int bits = sizeof(n) * 8;
 5     while (bits-->0) {
 6         printf("%d", n>>bits&1);
 7         if (bits%4==0) printf(" ");
 8     }
 9     printf("\n");
10 }

  1. signedunsigned

1> 首先要明确的:signed int等价于signedunsigned int等价于unsigned;

 

2> signedunsigned的区别就是它们的最高位是否要当做符号位,并不会像shortlong那样改变数据的长度,即所占的字节数。

 

  • signed:表示有符号,也就是说最高位要当做符号位,所以包括正数、负数和0。其实int的最高位本来就是符号位,已经包括了(正负数和0)了,因此signedint是一样的signed等价于signed int,也等价于intsigned的取值范围是-231 ~ 231 - 1

 

  • unsigned:表示无符号,也就是说最高位并不当做符号位,所 以不包括负数。在64bit编译器环境下面,int占用4个字节(32bit),因此unsigned的取值范围是:0000 0000 0000 0000 0000 0000      0000 0000 ~ 1111 1111 1111 1111 1111 1111 1111 1111,也就是0 ~ 232 - 1
posted @ 2015-02-07 14:13  浩友  阅读(158)  评论(0编辑  收藏  举报