首页 > 其他分享 >1.变量与数据类型、输出与输入

1.变量与数据类型、输出与输入

时间:2024-03-23 19:12:59浏览次数:21  
标签:变量 int sum 数据类型 long 整型 printf 输入

C语言语法知识点

1.变量与数据类型、输出与输入

C 中每个变量都有特定的类型,类型决定了变量存储的大小。
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头
有以下几种基本的变量类型:

类型
char 字符型,1字节(1字节8位,即1字节=8bit)
int 整型,4字节
short 短整型,2字节
long 长整型,4字节(由于历史原因,现在的 long 和 int 作用完全一样)
long long 长整型,8字节
float 单精度浮点型,4字节
double 双精度浮点型,8字节
void 表示类型的缺失。

整型变量只能接收整数值,浮点型变量只能接收浮点值,字符型变量只能接收字符,整型指针变量只能接收整型变量的地址,同理字符型指针变量只能接收字符型变量的地址。

例1.1

#include <stdio.h>
int main(){
	int x = 10;         // 整型变量 x 初始化为 10
    short y = 20;		// 短整型变量 y 初始化为 20
    short y = 30;		// 长整型变量 z 初始化为 30
    long long k = 40;	// 长整型变量 k 初始化为 40
	float pi = 3.14;    // 单精度浮点型变量 pi 初始化为 3.14
    double e = 2.17;	// 双精度浮点型变量 e 初始化为 2.17
	char ch = 'A';      // 字符型变量 ch 初始化为字符 'A'
	int *p1 = &x;		// 整型指针变量 p1 初始化为 整型变量x的地址
	char *p2 = &ch;		// 字符型指针变量 p2 初始化为 字符型变量ch的地址
	
	printf("%d, %hd, %ld, %lld\n", x, y, z, k);
	printf("%f, %lf\n", pi, e);
	printf("%c\n", ch);
	printf("%p, %d\n", p1, *p1);
	printf("%p, %ch\n", p2, *p2);
	return 0;
} 

运行结果:
10, 20, 30, 40
3.140000, 2.170000
A
000000000062FDEC, 10
000000000062FDEB, Ah

由于整型 int 的字节数 >= 短整型 short 和长整型 long,故对 short y 和 long z 的输出可以用 %d。但是 long long 还是要用 %lld 输出。

printf("%d, %d, %d, %lld\n", x, y, z, k);

运行结果:
10, 20, 30, 40

指针变量存储的都是地址,指针p1 存放 变量x 的地址, 指针p2 存放 变量ch 的地址,即p1 == &x,p2 == &ch。其中& 为取地址符,即&x 为变量x 的地址。
当对指针变量加* 号,就可以访问对应地址上存放的值,即 *p1 == x,*p2== ch。

有输出函数 printf 也有输入函数 scanf,在输入函数中变量类型和% 的对应与输出函数完全一致(即int 对应 %d,char 对应%c),但是后面的部分不再是变量名,而是变量的地址。

例1.2

#include <stdio.h>
int main(){
	int x;
	double y;
	scanf("%d %lf", &x, &y);  //&x, &y为x,y的地址 
	printf("%d %lf", x, y);
	return 0;
} 

输入:
1 1.2
运行结果:
1 1.200000

浮点型 float 和 double 会一次输出六位小数,不想输出这么多可以控制输出的小数位数。

scanf("%lf", &y); 
printf("%.2lf", y);
printf("%5.2lf", y);

输入:
1.2
运行结果:
1.20
_1.20

_为空格,当输出的位数(包括小数点 . )不足要求的5位时,在左边添空格。

类型转换

隐式类型转换:

int i = 10;
float f = 3.14;
double d = i + f; // 隐式将int类型转换为double类型

显式类型转换:

double d = 3.14159;
int i = (int)d; // 显式将double类型转换为int类型
				// 显示类型转换直接在变量前加(),浮点型转成整型会直接舍掉小数部分

例1.3

#include <stdio.h>
int main(){
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;
 
   sum = i + c;
   printf("Value of sum : %d\n", sum );
   return 0;
}

运行结果:Value of sum : 116

例1.4

#include <stdio.h>
int main(){
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );
   return 0;
}

运行结果:Value of sum : 116.000000

例1.5

#include <stdio.h>
int main(){
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
   return 0;
}

运行结果:Value of mean : 3.400000

标签:变量,int,sum,数据类型,long,整型,printf,输入
From: https://www.cnblogs.com/bwtyt/p/18091551

相关文章

  • EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融
    EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)目录EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)预测......
  • 数据类型
    一、常用数据类型整数类型:INT(或INTEGER)定点数类型:DECIMAL日期时间类型:YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型:CHAR、VARCHAR、TEXT二、整数类型例子:--1、建表createtabledemo.demo1(numint);--2、插入数据insertintodemo.demo1values(null)......
  • pytorch 清除中间变量优化显存
    参考(这里面有各种方法):https://cloud.tencent.com/developer/article/2374407最近训一个程序,发现训了一半突然outofmemory了。正常来说,outofmemory第一个batch就应该出现了,而不是训练一半再报错,感觉有些中间变量没有回收的锅。通常情况下,数据先存在内存上,然后把每个......
  • 一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的
    输入格式输入三行数据每行输入一个实数输出格式方程的解示例1输入:852输出:该方程无实数解示例2输入:009输出:Dataerror!a=float(input())b=float(input())c=float(input())delta=b**2-4*a*c#德塔ifdelta<0:print("该方程无实数解")#ab==0elif......
  • 0基础学习C语言第一章:常量与变量详解
    一、常量定义:在程序运行过程中,其值不能被改变的量称为常量。常用常量有以下几类:1.整型常量十进制整数形式例如:234,-1232.实型(浮点型)常量十进制小数形式:由数字、小数点组成例如:2.345、-23.345指数形式:如:1.23e2(相当于1.23x10²)由于在计算机输入输出时,无法表示上角......
  • outputStream(输出流)转inputstream(输入流)以及输入流如何复用
    https://blog.csdn.net/xuxu_study/article/details/129992752文件、流之间的转换MultipartFile转inputstream(输入流)outputStream(输出流)转为inputstream(输入流)inputstream(输入流)转ByteArrayOutputStreamMultipartFile文件直接转输入流上传和生成摘要MultipartFile文件需要......
  • octave中matlab中的双变量循环的解决思路,不是双层循环,请钢精回避吧
    同时画出K=1,KI=0和K=1,KI=1和K=10,KI=5,传递函数为Ts=(Ks+KI)/(s^3+3*s^2+(2+K)*s+KI)的暂态响应曲线。刚开始用循环时,发现不能像c中的for中双变量循环,很明显,此处也不能双重循环,否则图像就不对了,后来的解决的办法,虽然不是很高明,但总算解决了,记录下,代码的注释已经很详细了,具体就说了......
  • 指针变量一定要先赋值再使用
    链接:小小记录本指针变量使用指针变量为NULL时,不能访问该地址,这些我都清楚,但是我还是经常在这里犯错,普通的指针基本没什么问题,但是涉及到隐晦一点的使用,就会马虎忘记。比如使用结构体指针的时候就常常犯错。下面这段代码有什么问题,你能发现吗?typedefstructAA{ int......
  • 6.Go语言基本数据类型
    Go语言基本数据类型1、Golang数据类型介绍Go语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有:整型、浮点型、布尔型、字符串复合数据类型有:数组、切片、结构体、函数、map、通道(channel)、接口等。2、整型整型分为以下两个大类:有符号整形按长度分为:int8、i......
  • 7.GoLang中基本数据类型之间的转换
    GoLang中基本数据类型之间的转换1、关于golang中的数据类型转换Go语言中只有强制类型转换,没有隐式类型转换。2、数值类型之间的相互转换数值类型包括:整形和浮点型packagemainimport"fmt"funcmain(){varaint8=20varbint16=40varc=int16......