吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 698|回复: 6
收起左侧

[求助] c语言指针和数组求教

[复制链接]
fanguangwei 发表于 2022-7-29 09:43
新手求教感谢!

int main()
{
        int a[] = { 'A', 'B', 'C', 'D', 'E', 'F','\0' };
        printf("%x\n", a);
        printf("%s\n", a);

        printf("--------------------------------\n" );

        char b[] = { 'A', 'B', 'C', 'D', 'E', 'F','\0'};
        printf("%x\n", b);
        printf("%s\n", b);
       
        system("pause");

        return 0;
}
打印结果
effc3c
A
--------------------------------
effc2c
ABCDEF
请按任意键继续. . .

请问1.为什么按照字符串打印时候显示的是此地址内容字符串打印出来,而不是地址对应的ASCII的字符串显示?
2.数组a打印字符串时候为啥打印不全?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

无闻无问 发表于 2022-7-29 12:36
因为char和int占的空间不同,1打印A是int占4字节,A只占一部分,后面填充了0
无闻无问 发表于 2022-7-29 12:37
头像被屏蔽
机智聪明的小迪 发表于 2022-7-29 12:48
头像被屏蔽
机智聪明的小迪 发表于 2022-7-29 12:49
提示: 作者被禁止或删除 内容自动屏蔽
LemonTree9527 发表于 2022-7-29 13:21
可以理解为打印%s,是从你放入的地址开始往后找到\0为一个字符串,进行的打印。char数组一个元素占一位,必须找到\0才会完全停下。而int数组中'A'后面已经自动赋值\0所以只打印A,
 楼主| fanguangwei 发表于 2022-7-29 13:57
LemonTree9527 发表于 2022-7-29 13:21
可以理解为打印%s,是从你放入的地址开始往后找到\0为一个字符串,进行的打印。char数组一个元素占一位,必 ...

感谢!理解了!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 10:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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