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;
}
标签:变量,int,sum,数据类型,long,整型,printf,输入 From: https://www.cnblogs.com/bwtyt/p/18091551运行结果:Value of mean : 3.400000