通过几个简单的代码进一步认识C语言,了解c语言的数据类型和printf()的转换说明修饰符等。
目录
一、C数据类型和printf()的转换说明修饰符
char //字符数据类型 (1字节)
short //短整型 (2字节)
int //整型 (4字节)
long //长整型 (4字节)
long long //更长整 (8字节)
float //单精度浮点型 (4字节)
double //双精度浮点型 (8字节)
那么这些类型的大小呢?我们可以通过sizeof()可以求出其大小:(%zu是专门用于打印sizeof()返回值的转换说明。)
这是在X86也就是32位操作系统下。
认识了C语言这些数据类型我们该如何使用,如何在屏幕上打印出它们呢?来看下面这一段代码:
#include <stdio.h>
int main()
{
char a = 'A'; //声明字符变量,并且把'A'赋值给a
short b = 1; //声明短整型变量
int c = 1; //声明整型变量
float d = 1; //声明单精度浮点型变量
double e = 1; //声明双精度精度浮点型变量
printf("a=%c ", a); //打印
printf("b=%hd ", b);
printf("c=%d ", c);
printf("d=%f ", d);
printf("e=%lf ", e);
return 0;
}
%c、%d、%hd、%d、%f、%lf这些都是printf()函数打印数据是用到的转换说明,它们指定了如何把数据转换成可显示的形式。
%c用于打印单个字符,而打印字符串要使用%s;其中%d表示以十进制打印整数,而%hd使用h前缀表示以十进制打印short类型的整数,%f和%lf则是分别打印单精度和双精度的转换说明。从程序执行结果来看,单精度和双精度打印出来的值是一样但其实双精度的精度要高于单精度。
二、比较两个整数的大小
#include <stdio.h> //包含头文件
int get_max(int a, int b) //定义一个函数
{
if (a > b)
return a;
else
{
return b;
}
//return a > b ? a : b;
//三目运算符:a>b为真,则其值为a;a>b为假,则其值为b.
}
//主函数
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b); //输入a和b,用空格隔开输入
c = get_max(a, b); //调用函数比较a、b的大小并且返回较大的值
printf("%d\n",c); //打印a、b中的较大的数
return 0;
}
1、定义函数
int get_max(int a, int b) //定义一个函数
{
if (a > b) //选择语句{
return a;}
else
{
return b;
}
//return a > b ? a : b;
//三目运算符:a>b为真,则其值为a;a>b为假,则其值为b.
}
上述代码定义了一个函数,函数名为get_max(),而我们调用这个函数时要传参,传给也就是a和b这两个形参;int表示函数返回类型为整型。我们可以看到函数体中还有有一个ifelse选择语句,如果if(a>b)中a>b为真则执行retrun a,为假则执行else里面的return b;
return a > b ? a : b;
上式为三目运算符,其格式为[ 表达式1?表达式2:表达式3; ]当表达式1为真时,该条件表达式的值为表达式2的值;当表达式1为假时,该条件表达式的值为表达式3的值.知道了这个上述函数就可以简化为:
int get_max(int a, int b) //定义一个函数
{
return a > b ? a : b;
//三目运算符:a>b为真,则其值为a;a>b为假,则其值为b.
}
结果也是对的。
2、调用函数并输出结果
//主函数
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b); //输入a和b,用空格隔开输入
c = get_max(a, b); //调用函数比较a、b的大小并且返回较大的值
printf("%d\n",c); //打印a、b中的较大的数
return 0;
}
scanf("%d %d", &a, &b); //输入a和b,用空格隔开输入
在主函数中,定义了三个变量a、b、c。用scanf()函数输入要比较的两个整数,a、b接收输入的整数 。
c = get_max(a, b); //调用函数比较a、b的大小并且返回较大的值
get_max(a, b)表示调用get_max()函数并把a,b的值传过去,在其函数内比较a和b的大小并且返回较大的数,函数调用完函数值为返回值也就是ab中的较大值,并且把这个较大值赋值给c。如果我们输入10 20,将看到屏幕上打印出20.