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

黑马程序员——C语言——基础语法

2015-12-06 20:03 381 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1. C语言程序

C语言的源程序是.c文件

C语言程序的构成:

由函数构成,每个函数实现了一个或多个功能
在程序中,只有一个主函数(主函数被系统调用)
函数只有被调用的时候才执行
如果没有主函数,程序无法运行

源文件(.c)—编译—>目标文件(.o)—链接—>可执行文件(.out)

2. C语言有32个关键字

数据类型关键字

A:基本数据类型关键字:void int
char float
double

B:类型修饰符关键字:short long
signed unsigned

C:复杂类型关键字:struct union
enum typedef
sizeof

D:存储类型关键字:auto static
register extern
const volatile

流程控制关键字

A:跳转结构:return break
continue goto(一般不用)

B:分支结构:if else
switch case
default

D:循环结构:do while
for

3. 标示符

命名规则:

只能由字母、数字、下划线或$符号构成
不能由数字开头
不能和关键字重名
区分大小写

4. C语言注释

单行注释 //

多行注释 /* */

注释使用注意:

单行注释可以嵌套多行注释,但必须在同一行(无意义)

多行注释可以嵌套单行注释

多行注释不能嵌套多行注释

5. C语言中数据类型

a. 基本数据类型

整型:短整型(short) 长整型(long) 整型(int)

字符型 (char)

实型:单精度型(float) 双精度型(double)

b. 构造类型

数组、结构体(struct)、共用型(union)、枚举类型(enum)

c.指针类型

d.空类型

e.定义类型 (typedef)

6. 数据类型的内存占用

在64位机器下:

char 1个字节 int 4个字节 float 4个字节 double 8个字节 short 2个字节 long 8个字节 long long 8个字节 void* 8个字节

7. 不同数据类型的常量表达式

a.整型常量:

10进制

8进制 以0开头 eg:045

2进制 以0b开头 eg:0b1000111101

16进制 以0x开头 eg: 0x001FFA801B

b. 实型常量

单精度常量 以f结尾 eg:2.3f

双精度常量 默认是双精度常量 eg: 2.3

c. 字符型常量

字符型常量 用单引号括起来的字符 eg: 'a'

d. 字符串常量

字符串常量 用双引号括起来,可以使字符、数字、符号 eg: "abc" "gshf&"

8. 变量

变量的两要素:变量类型 变量名

变量分类:全局变量 局部变量

变量的初始化

定义的同时初始化: int a = 10;

先定义变量后初始化: int b; b = 2;

使用变量给变量初始化: int c=b; //用b的值给c初始化

给变量连续初始化:int d, e, f; d=e=f=100;

变量的作用域:

局部变量(内部变量):在函数内或代码块内部定义的变量,作用域仅限函数内部或代码块内。

全局变量: 在函数外部定义的变量,从定义的位置开始,到文件末尾结束,在同一文件的不同函数中都可以使用。

注意:在代码块内部可以定义和外部同名的变量,块内部会暂时屏蔽块外部同名的变量。

变量为什么区分类型?

为了更合理的分配内存,不同数据类型需要的存储空间可能不同

数据的存储格式不一样,比如 int 4个字节,float 4个字节

不同数据类型的运算方式可能不同

9. printf函数

调用格式:printf("格式控制字符串",输出列表);

格式控制符说明:

%d: 输出有符号10进制整数,正数符号不输出

%c:输出一个字符

%f:输出一个实数(包括单精度、双精度、长双精度),以小数形式输出。实数部分全部输出,float型小数部分输出6位

%s:输出字符串

%m.n: 指定数据宽度和小数位数 eg:%7.2f 输出数据占7列(小数点占1列),包括两位小数

%.n: 指定小数位n位

%0:以8进制形式输出

%:x:以16进制形式输出

%p:输出变量地址

%f输出精度问题:

%f输出数据时,float类型精度是小数点后6位,有效数字是7位

%f输出数据时,double类型精度是小数点后6位,有效数字是15位

printf函数使用注意事项:

域宽问题

%md: m是数字,可以为正也可以为负,如果要输出的数大于域宽m,按实际位数输出;小于m按实际位数输出。

%0md:位数小于域宽时,补0

10. scanf函数(阻塞式函数)

调用格式: scanf("格式控制符",输入项地址列表);

阻塞式函数执行后会等待用户一直输入,如果用户不输入任何内容,它会一直等待。

scanf函数使用注意事项:

接收单个变量时在输入值之前,输入的空格,回车、tab都会被忽略.

scanf函数在遇到回车时会结束执行

输入数值时,在两个数值之间需要插入空格或回车隔开,输入完第一个数,输入空格、回车。tab都会被忽略

‘*’的使用,%*d,跳过一个整数,%*c,跳过一个字符

scanf运行原理:

当用户输入内容后,这些内容会被存到scanf的输入缓冲区中,格式控制符会根据格式控制字符的要求,从输入缓冲区依次取出相应内容存到变量中,如果格式不一致,不给变量赋值。如果缓冲区还有内容,不会提示我们再输入。

解决混合型输入问题的方法:

a. 如果整型和字符型混合,加上','

eg: scanf("%d,%c,%d",&a,&ch,&b);

b. 每个变量写依次scanf时,我们要每次回车依次时

scanf("%d",&a);

scanf("%c",&ch); //吸收回车字符

scanf("%d",&ch);

scanf("%d",&b);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: