C语言变量和数据类型

2016/10/01 c

变量可以通过变量名访问。在指令式语言中,变量通常是可变的;由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。

什么是变量

变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。其值可变的量叫做变量。每个变量都有自己的生命周期和内存地址。

变量命名

在C语言中变量名可以由字母A-Z和a-z数字0-9,和下划线组合而成。

变量使用原则

  • 先声明
  • 再赋值
  • 后使用

变量种类

  • 全局变量
  • 局部变量

全局变量

在函数外部申明的变量叫全局变量,可以在任何一个函数中使用。多个函数中使用相同的变量,变量值是共享的。

#include <stdio.h>
void show();
int age = 0;
int main(void) {
	show();
	printf("my age:%d",age);
	return 0;
}
void show(){
    age = 10;
}
//output my age:10

int age = 0; 是申明一个变量,因为在函数外,所以age是全局变量。

局部变量

在函数内申请的变量叫局部变量,局部变量只能在当前函数中使用。

#include <stdio.h>
int main(void) {
	int age = 10
	printf("my age:%d",age);
	return 0;
}
//output my age:10

这里的age是一个局部变量

如何申明变量

申明一个变量,由数据类型和变量名组成。

//无初始值
int age;
double money;
//设置初始值
int myage = 20;
double myMoney = 1000;

什么叫常量

在程序中保持不变的量叫做常量。定义常量用来代替相同的且不变的值。如 PI = 3.1415926

常量使用之前必须定义用 #define

#define PI 3.1415926

使用示例

#include <stdio.h>
#define PI 3.1415926
int main(void) {
    #define AGE 20
    printf("PI:%f\n",PI); //如果使用%0.2f,将会输出小数点后2位
    printf("AGE:%d\n",AGE);
    return 0;
}
/***
 * output
 * PI:3.141593
 * AGE:20
 ***/

C语言数据类型

类型名称 说明 字节数 取值范围
int 整型 16位 -32768至+32767
short int 短整型 16位 0至65535
long int 长整型 32位 -2147483648至2147483647
unsigned long int 无符号长整型 32位 0至4294967295
unsigned short int 无符号短整型 16位 0至65535
float 单精度浮点型 32位 10e-38至10e38
double 双精度浮点型 64位 10e-308至10e308
char 字符型 8位 -128至+127

常用转义符

转义符 说明
\a 输出警告
\b 输出退格
\f 输出换页
\n 输出换行
\r 输出回车
\t 输出水平制表
\v 输出垂直制表
\' 输出单引号

使用示例

#include <stdio.h>
int main(void) { 
	printf("Hello World!\nHello World!");
	return 0;
}
/***
 * 输出
 * Hello World!
 * Hello World!
 ***/

常用格式化字符串列表

格式字符 说明
%d 输入 / 输出为整型
%ld 输入 / 输出长整型
%c 输入 / 输出字符
%s 输入 / 输出字符串
%f 输入 / 输出单精度浮点型
%lf 输入 / 输出双精度浮点型

使用示例

#include <stdio.h>
int main(void) { 
    int age;
    printf("Please input you age:");
    scanf("%d",&age);
    printf("Are you age is %d.",age);
    return 0;
}

类型转换

自动类型转换按从小到大顺序排列

short > int > long > float > double

强制类型转换

int c=(int)a/b;

欢迎大家加入一起学C语言QQ群:474879609

Search

    Post Directory