鱼C论坛

 找回密码
 立即注册
查看: 1239|回复: 7

[已解决]如下面求解

[复制链接]
发表于 2020-9-14 22:06:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
char c="abcd"的“”其中一个作用是返回abcd的地址给c 并不是将abcd赋值给c那为什么在printf(“%s”,c)中能直接打印出abcd 不用给c加上取值符号 即printf("%s",*c)呢 www
最佳答案
2020-9-14 22:36:44

char c[]="abcd" == char c[5]="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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-14 22:19:33 | 显示全部楼层
求助求助求助呜呜呜呜呜呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 22:20:52 | 显示全部楼层
我看过字符串常量和字符数组
就是没有看过 char c = "abcd"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-14 22:23:58 | 显示全部楼层
ba21 发表于 2020-9-14 22:20
我看过字符串常量和字符数组
就是没有看过 char c = "abcd"


sorry是char c[]="abcd"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 22:36:44 | 显示全部楼层    本楼为最佳答案   

char c[]="abcd" == char c[5]="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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2020-9-14 22:59:31 | 显示全部楼层
ba21 发表于 2020-9-14 22:36
char c[]="abcd" == char c[5]="abcd\0"

%s 从指定地址处获取字符中,直到遇到\0结束。

哦哦%s是从指定地址处获取字符那请问%d是直接获取数据吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 23:13:08 | 显示全部楼层
吸鼠霸王 发表于 2020-9-14 22:59
哦哦%s是从指定地址处获取字符那请问%d是直接获取数据吗

这个%相关用法上网查格式化输出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-15 02:06:49 | 显示全部楼层
吸鼠霸王 发表于 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个字符右对齐。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表