初学C语言——数据类型、变量、常量、printf及scanf的使用

目录

数据类型

变量

 变量分为局部变量和全局变量

 如何创建变量

常量

1字面常量

2const修饰的常量

3#define 定义的标识符常量

4枚举变量

printf与scanf

printf

scanf


数据类型

char                //字符数据类型        1byte
short                //短整型                   2byte
int                    //整形                       4byte
long                //长整型                     >=4byte
long long        //更长的整形              >=8byte
float               //单精度浮点数           4byte
double           //双精度浮点数           8byte
c语言中没有字符串(string)的类型
1Byte(字节或B)=8bit(位或b或比特)
不同数据类型其大小不同,我们可以通过sizeof()来求
#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	printf("%d\n", sizeof(long double));
	return 0;
}

变量

 变量分为局部变量全局变量

#include <stdio.h>
int num = 10;//全局变量
int main()
{
    printf("num = %d\n", num);
    {
        int num = 1;//局部变量
        printf("num = %d\n", num);
    } 
    printf("num = %d\n", num);
    return 0;
}

运行结果

 上面的程序第一次、第三次我们都输出了num=10,而第二次我们输出的是num=1

从这里我们可以发现

全局变量:在整个程序内部均有效

局部变量:仅在其作用域范围内有效(可以理解为其仅在其所在的{ }内部有效)

生命周期:变量的创建到变量的销毁之间的一个时间段

如何创建变量

int age = 150;
float weight = 45.5f; 
char ch = 'w';

以上是一些例子

我们可以看出创建变量的格式为:

数据类型  变量名(自己定义)=  初始值(创建时暂时不赋值也可以,但不建议这不是好习惯)

创建变量的本质是在内存中开辟一片空间,用来存放数据(由此我们也可以知道为什么不同的数据类型大小会有所不同,因为它们申请的空间是不同的)

常量

 1字面常量

#include <stdio.h>
int main()
{
    "hello world!";//
    10;//这就是两个字面常量
}

直接写出的就是字面常量

2const修饰的常量

#include<stdio.h>
int main()
{
	//常属性
	//这里的a是具有常属性的,不能改变,但是本质上还是变量

	const int a = 3;

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

	//数组
	const int n = 10;
	int arr[n];

	return 0;
}

 可以看到第10行a报错显示:表达式必须是可修改的左值,这说明const修饰的常量具有常属性

再看第15行数组arr[n]报错显示:表达式必须含有常量值,应输入常量表达式,这说明const修饰的变量并不是真正的常量

综上,const修饰的常量本质上是具有常属性的变量(在C++中可以直接当成常量,不会报错)

3#define 定义的标识符常量

#include<stdio.h>
#define SIZE 10
#define MAX 10000
#define CH 'W'
int main()
{
	int a = SIZE;
    int arr1[10]={0};
	int arr2[SIZE] = {0};
	printf("%c", CH);
	return 0;
}

从上面的代码可以发现用#define定义的10,10000,'w'都与直接使用没有差别,所以我们可以把这种方式看成是给数据取了个名字,方便调用,增强代码的可读性

4枚举变量

#include<stdio.h>
enum SEX
{
	//列出了枚举类型enum SEX的可能取值
	//枚举常量
	MALE=4,//可以赋初值,如果不赋初值默认从0开始
	FEMALE=6,
	SECRET=9
};

int main()
{
	enum SEX s = FEMALE;
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);

	return 0;
}

枚举 :一一列举

枚举常量:代表该枚举类型的变量可能取的值

printf与scanf

都是库函数 - C语言的编译器提供的现成的函数,直接可以使用

使用的时候要包含头文件stdio.h

printf的作业是输出数据,数据从内存打印(输出)到屏幕上

scanf的作用是输入数据,数据从键盘读取到内存中

printf

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

这里的"%d"表示的是输出格式,n即为想要打印的内容

输出格式如上,想输出多个数据见最后一行

scanf

int n;
int a,b;
scanf("%d",&n);
scanf("%d %d",&a,&b)

这里的"%d"表示的是输入格式,n即为想要获取的内容

输入格式如上,想输入多个数据见最后一行

VS中直接使用会报错此时可以在第一行直接加上#define _CRT_SECURE_NO_WARNINGS 1

或者使用scanf_s(不推荐,因为其他平台不支持)

&为取址符,前面我们了解了创建变量的本质是在内存中开辟一片空间,用来存放数据,&的作用就是取n的地址,然后scanf()这个函数就可以将从键盘获取的内容存到n的地点

常用的格式

      %a(%A)     浮点数、十六进制数字和p-(P-)记数法(C99)
      %c             字符
      %d             有符号十进制整数
      %ld            输出长整型数据。(long long类型为%lld)
      %f              浮点数(float,doulbe)(控制小数位数可使用  .n%f  n是要保留的小数位数)
      %e(%E)     浮点数指数输出[e-(E-)记数法]
      %g(%G)     浮点数不显无意义的零"0"
      %i              有符号十进制整数(与%d相同)
      %u             无符号十进制整数
      %o             八进制整数    e.g.     0123
      %x(%X)      十六进制整数  e.g.   0x1234
      %p             指针
      %s             字符串
      %%            "%"

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值