c语言的变量

变量

我们可以直接声明一个变量,并利用这些变量进行基本的运算,声明格式为:

数据类型 变量名称 = 初始值; // 其中初始值可以不用定义变量时设定
// = 是赋值操作,可以将等号后面的值赋值给前面的变量,等号后面可以直接写一个数字(常量)、变量名称、算式
// 也可以同时赋值多个变量

变量的名称命名的规则:

	// 不能重复使用其他变量使用过的变量名
    // 只能包含字母或是下划线数字,并且严格区分大小写
    //可以包数字但是不能以数字开头
    // 不能是关键字
    // 建议不用使用拼音,多实用英文,多个词可以使用驼峰命名法
    // 建议使英文单词进行设置变量,可以使用驼峰命名法或者下划线命名法。

整数类型

可以使用变量进行一些基基本的运算:

#include 
int main() {
	int a =  10; // 将10 作为a 的值
	int b = 20; // b赋值为b
	int c = a + b; //变量c 等于变量a 加上变量b
}

注意:变量一定要先定义再使用

#include 
int main() {
	int a = 10;
	int b = 20;
	int c = a+b;
	printf(c);   //直接打印变量c
}

但是这样代码是没有办法跑起来的,并且还会出现红色的下标
c语言的变量_第1张图片
错误的原因是因为printf是用于格式化打印的将输出的代码修改为以下内容即可:

 printf("%d",c);//打印变量c

其他的格式控制符:

格式控制符 说明
%c 输出一个单一的字符
%hd,%d,%ld 以十进制、有符号的形式输出short、int、long类型的整数
%hu,%u,%lu 以十进制、无符号的形式输出short、int、long 类型的整数
%h、%o、%lo 以八进制、不带前缀无符号的形式输出short、int、long、类型的整数
%#ho、%#o、%#lo 以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数
%hx、%x、%lx %hX、%X、%lX 以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。
%#hx、%#x、%#lx %#hX、%#X、%#lX 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。
%f、%lf 以十进制的形式输出 float、double 类型的小数
%e、%le %E、%lE 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。
%g、%lg %G、%lG 以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。
%s 输出一个字符串

定义浮点数类型的变量

#include 
int main() {
	double a = 0.5;
	float b = 2.5f;
	printf("a+b=%f",a+b)
}

这个时候我们需要注意两个地方:2.5f如果这里直接写2.5默认表示的是一个double类型的数值,需要在后面加一个f或者是F表示的是float的类型。
%f根据上面的表可以了解到如果是浮点数使用%f表示

字符串类型的变量

# include 
int main(){
	char c = 'A' //字符需要使用单引号囊括,且只能有一个字符,不能写成'AA',这就不是单个字符了
	}

结果:
在这里插入图片描述

也可以通过ASCII 码打印出对应的字符:

# include 
int main(){
	char c = 66;
	printf("%c,%d",c,c)}

结果:
在这里插入图片描述
变量除了有初始值之外,也可以在后续的过程中得到新的值:

#include 

int main() {
    short s = 10;
    s = 20;    //重新赋值为20,注意这里就不要再指定类型了,指定类型只有在声明变量时才需要
    printf("%d", s);   //打印结果
}

重新赋值为20,注意这里就不要再指定类型了,指定类型只有在声明变量时才需要

那要是我们不对变量设定初始值呢?那么变量会不会有默认值:

# include 
int main(){
		int a,b,c,d;
		printf("%d,%d,%d,%d",a,b,c,d)
		}

在这里插入图片描述

如果变量没有设定初始值,那么他的值就是不确定的(并不是默认的值就是0),至于为什么不是0,这是因为内存分配机制

#include 

int main() {
    char c = 127;    
    c = c + 1;   
    printf("%d", c); 
}

127 + 1=【 01111111 + 1】由于现在是二进制,满2进1,所以最后变成,10000000 = 补码形式的 -128

你可能感兴趣的:(c语言,算法,数据结构)