进一步认识C语言

通过几个简单的代码进一步认识C语言,了解c语言的数据类型和printf()的转换说明修饰符等。

 

目录

 

 

一、C数据类型和printf()的转换说明修饰符

二、比较两个整数的大小

1、定义函数

2、调用函数并输出结果

 


 

 

 

 

一、C数据类型和printf()的转换说明修饰符

char               //字符数据类型     (1字节)       

short              //短整型                (2字节)

int                  //整型                    (4字节)

long               //长整型                (4字节)

long long       //更长整                 (8字节)

float              //单精度浮点型       (4字节)

double          //双精度浮点型       (8字节)

那么这些类型的大小呢?我们可以通过sizeof()可以求出其大小:(%zu是专门用于打印sizeof()返回值的转换说明。)

这是在X86也就是32位操作系统下。

95c87f57e2854677860c8c58f068bb2d.png

认识了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;	
}

     bf82af2d2d414b4f9093ef257fc240c2.png 

%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.
}

结果也是对的。 

 95d9fe0f0c4c4d77996b040b9f2e851a.png

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.

a207a41255cd43f09dbf26e9234b8e5e.png

 

 

 

 

 

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华丞臧.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值