如下面求解
char c="abcd"的“”其中一个作用是返回abcd的地址给c 并不是将abcd赋值给c那为什么在printf(“%s”,c)中能直接打印出abcd 不用给c加上取值符号 即printf("%s",*c)呢 www 求助求助求助呜呜呜呜呜呜呜 我看过字符串常量和字符数组就是没有看过 char c = "abcd" ba21 发表于 2020-9-14 22:20
我看过字符串常量和字符数组
就是没有看过 char c = "abcd"
sorry是char c[]="abcd" 吸鼠霸王 发表于 2020-9-14 22:23
sorry是char c[]="abcd"
char c[]="abcd" == char c="abcd\0"
%s 从指定地址处获取字符中,直到遇到\0结束。
1,c 本来就是一个地址。printf("%s\n",地址);
2,如果 *c 那就是 一个值 而不是地址,printf("%s\n",值 );
3, %s要的是地址。
#include <stdio.h>
int main()
{
char c[] ="abcd";
printf("%c\n", *c);
printf("%c\n", 'a');
// 报错
printf("%s\n", 'a');
return 0;
} ba21 发表于 2020-9-14 22:36
char c[]="abcd" == char c="abcd\0"
%s 从指定地址处获取字符中,直到遇到\0结束。
哦哦%s是从指定地址处获取字符那请问%d是直接获取数据吗 吸鼠霸王 发表于 2020-9-14 22:59
哦哦%s是从指定地址处获取字符那请问%d是直接获取数据吗
这个%相关用法上网查格式化输出。 吸鼠霸王 发表于 2020-9-14 22:59
哦哦%s是从指定地址处获取字符那请问%d是直接获取数据吗
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数(多用来输出地址)
%o 无符号以八进制表示的整数
%g 以%f%e中较短的输出宽度输出单、双精度实数
%e,%E 以指数的形式输出
%lf 以dudouble型进行输入或输出
%lu 32位无符号整数
%llu 64位无符号整数
可以在“%”和字母之间插进数字表示最大场宽,不够3位右对齐:如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。
%3d 输出3个字符长度的整数
%9.2f 输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。
%8s 输出8个字符的字符串,不够8个字符右对齐。
页:
[1]