C语言学习--占位符

目录

1.字符和字符串

%c  输出一个字符

%s   输出字符串

2.整型

%d  %i  输出带符号的十进制整数

%u  输出无符号的十进制整数

%o  输出八进制整数 

%x  %X  输出十六进制整数

3.浮点型

%f  输出浮点数

%e  %E  用科学计数法输出浮点数

4.指针

%p  输出指针地址

5.其他

[%%  输出一个百分号]

6. 格式声名 


1.字符和字符串

%c  输出一个字符

占位符后面的内容应该是一个整型int或字符char,表示要输出的字符的ASCII码值(一般为一个整数)或字符本身。

char ch = 'A';
printf("%c", ch); //输出字符'A'
printf("%c", 123); //输出字符'{'
//根据ASCII码表,整数123对应的字符是'{'。因此,printf("%c", 123)会输出字符'{'。

%s   输出字符串

占位符后面的内容应该是一个地址(字符数组名或指向字符串的指针char*)
//%s由该地址开始依次输出字符,直到遇到结束符[\0]而停止输出

char str[4] = {'M','E','T'};
printf("%s\n", str); //输出 MET
char* p = "mettrnai"; //p存放字符串首字符地址
printf("%s\n", p); //输出 mettrnai

2.整型

%d  %i  输出带符号的十进制整数


占位符后面的内容应该是一个整型int

int a = 10;
printf("%d", a); //输出10
int b = -7;
printf("%i", b); //输出-7

%hd        短整型short int

%ld         长整型long

%lld        长长整型long long

%u  输出无符号的十进制整数

占位符后面的内容应该是一个无符号整数unsigned int

unsigned int num = 10;
printf("%u", num); //输出10
int num = -10;
//11111111111111111111111111110110
//%u输出无符号整型,于之没有符号位
//直接将2进制(11111111111111111111111111110110)转化为10进制(4294967286)输出
printf("%u", num); //输出4294967286

%o  输出八进制整数 

占位符后面的内容应该是一个无符号整数unsigned int

unsigned int num = 10;
printf("%o", num); // 输出八进制整数12
int num = -10;
//储存二进制补码:11111111111111111111111111110110
//%o占位符后面的内容应该是一个无符号整数
//11111111111111111111111111110110由二进制(无符号位)直接转换为8进制输出:
printf("%o", num); //输出37777777766

%x  %X  输出十六进制整数

占位符后面的内容应该是一个无符号整数unsigned int

//%x 用于输出小写字母表示的十六进制整数
unsigned int num = 255;
printf("%x", num); //输出ff


//%X 用于输出大写字母表示的十六进制整数
unsigned int num = 1203;
printf("%X", num); //输出4B3

3.浮点型

%f  输出浮点数


占位符后面的内容应该是一个浮点数double

double num = 3.14;
printf("%f", num); //输出浮点数3.140000
//%lf         双精度浮点型double

%e  %E  用科学计数法输出浮点数


占位符后面的内容应该是一个浮点数double

//%e  指数部分使用小写字母
double num = 10000.0;
printf("%e", num); //输出1.000000e+04

//%E  指数部分使用大写字母
double num = 10000.0;
printf("%E", num); //输出1.000000E+04

//%g %G  根据数值的大小自动选择%f\%e\%E输出浮点数
占位符后面的内容应该是一个浮点数double

double a = 10000.0000;
float b = 0.0000001917;
printf("%g\n", a); //输出10000
printf("%g\n", b); //输出1.917e-07
printf("%G\n", b); //输出1.917E-07


4.指针

%p  输出指针地址

*以16进制的形式输出地址
占位符后面的内容应该是一个指针类型的变量

int a = 0;
int* pa = &a;
int arr[10] = { 0 };
printf("%p\n", &a);
printf("%p\n", pa);
printf("%p\n", arr); //数组名为数组首元素地址

5.其他

[%%  输出一个百分号]

无需后面的内容。

printf("50%%"); //输出 50%

6. 格式声名

指定输出数据域宽(所占列数)

%d 和 %i:打印有符号十进制整数。  
%5d:打印宽度为5的有符号十进制整数。右对齐
%-5d:打印宽度为5的有符号十进制整数。左对齐


%f 和 %F:打印浮点数。
%8.2f:打印宽度为8的浮点数,并保留两位小数。右对齐
%-8.2f:打印宽度为8的浮点数,并保留两位小数。左对齐


%s:打印字符串。
%10s:打印宽度为10的字符串。右对齐
%-10s:打印宽度为10的字符串。左对齐


%c:打印单个字符。
%6c:打印宽度为6的字符。右对齐
%-6c:打印宽度为6的字符。左对齐

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){

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

    printf("%d + %d = %d\n",a,b,a+b);
    printf("%d - %d = %d\n",a,b,a-b);
    printf("%d * %d = %d\n",a,b,a*b);
    printf("%d / %d = %d\n",a,b,a/b);
    printf("%d %% %d = %d\n",a,b,a%b);
    return 0;
}

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西柚小萌新

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

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

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

打赏作者

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

抵扣说明:

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

余额充值