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

C语言-数据类型、常量、变量、变量作用域、printf、scanf函数

2014-10-11 21:46 375 查看
4、数据类型介绍

数据:文本数据、音频、视频、图像、数字

C语言中有5大数据类型:基本类型、构造类型、空类型、指针类型、自定义类型

基本数据类型:

整型 长整型long int 整型int(4) 端整型short int

实型 单精度float(4) 双精度 double(8)

字符型 char(1)

内存:

1> 内存分配:4G存储大小:4*1024*1024*1024Byte; 内存的基本单元为一个字节(就是8bit)

2> 内存区域:栈 (存放局部变量)

堆 (存放动态分配的数据, 比如:类对象,函数malloc要求系统分

配的内存,动态分配的内存都需要程序要自己释放)

常量区 (存放常量)

代码区 (代码区:代码内的局部变量在这里分配内存)

全局变量区(静态区)

5、常量

固定不变的量

1)整型常量

2 0b开头 0b00001010;

8 0开头 012;

10 默认 10

16 0x 0xff01

2)实型常量

单精度:2.3f

双精度:4.5 (默认)

3)字符型常量

'a' ' ' '$' '\n'(转义字符)

4)字符串常量

"abc" "a"

6、变量

在计算机中存储经常变量的数据

变量在内存中代表了一块内存区域

使用流程:

定义 ---- 初始化 ----使用

1)变量的定义:

int a;

int a,b,c;

变量定义完成以后,有值:

1)随机的 2)上一个程序在内存中驻留的 3)系统的

2)变量的初始化

1)先定义,后初始化

int a;

a = 10;

2)定义的同事进行初始化

int a = -1;

全部初始化:int a = -1,b=0;

部分初始化:int a,b = -1;

3)使用其他的变量初始化

int a = 0;

int b = a;

4)连续初始化

int a,b,c;

a = b = c =10;

3)变量的使用

int a =0;

int b;

b = a+10;

a = b;

4)变量名称遵守标识符的命名规则

7、变量的作用域

变量的使用范围

变量分:局部变量和全局变量

局部变量:函数或者代码块中定义的变量

作用域:从定义的位置开始向下 遇到 “}” 作用域结束

全局变量:在函数的外部定义的

作用域:从定义的地方开始,到当前文件结束

注意:

1)块的内部可以访问全局变量

2)在块的外部不能访问块内部的变量

3)块的内部可以定义和全局变量同名的变量(屏蔽)

为什么变量要初始化:

因为程序结束后,操作系统会释放内存,但是内存中得值还在,所以我们定义的变量有可能使用了上次系统释放的内存

8、printf函数

printf函数 标准的输出函数

输出的原理 : printf把要输出的内容--->输出缓冲区-->输出到控制台

格式:printf("格式说明",变量列表)

格式说明符:

%d 整型 %i 可以

%md %0md

%c 字符型

%f 实型 %e %g

%o 八进制

%p 地址

%x 16进制

9、scanf函数(阻塞式函数-等待用户的输入,如果不输入会一直等待)

C语言中标准的输入函数

接收用户从键盘上输入的内容

格式:scanf("格式控制",地址列表) 地址怎么来的? &-取地址符号

1)接受一个数字

int a=-1;

scanf("%d",&a);

注意:在输入字符之前 输入了 回车、tab制表、空格 ,都被忽略

scanf("%5d",&a); //%md m就是要获取的数据的位数

2)接受多个数字

3)接受的是数字和字符混合

4)scanf的运行原理 先输入到缓冲区,然后输出到控制台;

//接收多个数字的问题

// int a=-1,b=-1;

// scanf("%d%d",&a,&b);

// printf("a = %d,b = %d\n",a,b);

//接受指定的位数的问题

// int a=-1;

// scanf("%5d",&a);

// printf("a = %d\n",a);

//字符混和输入

// int a=-1;

// char ch;

// scanf("%d#%c",&a,&ch); //","是一个普通的分隔符 ,输入数据的时候也要用“,”分隔

//// scanf("%d%c",&a,&ch); //有问题的,涉及到scanf的运行原理,稍后讲

// printf("a = %d,ch = %c\n",a,ch);

//关于\n问题 ,

// int a= -1;

// scanf("%d\n",&a); // \n 换行符,尽量避免这种写法

// printf("a = %d",a,b);

int a=-1,b=-1;

char ch;

char c;

scanf("%d",&a); //接收三个内容,格式: 12 b 34

scanf("%c",&ch); //空格

scanf("%c",&ch); //b

scanf("%c",&c); //空格

scanf("%d",&b); //34

printf("a = %d,ch = %c,b = %d\n",a,ch,b);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐