鱼C论坛

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

C代码 为什么输出的是乱码

[复制链接]
发表于 2018-7-13 14:56:50 | 显示全部楼层 |阅读模式

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

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

x
131.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-13 15:05:56 | 显示全部楼层
能把代码贴全吗?然后把输出也贴出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 15:19:49 | 显示全部楼层
BngThea 发表于 2018-7-13 15:05
能把代码贴全吗?然后把输出也贴出来

111.png

就是这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-13 15:36:54 | 显示全部楼层
72行,stu前面的取地址去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 17:16:20 | 显示全部楼层
BngThea 发表于 2018-7-13 15:36
72行,stu前面的取地址去掉

这里的&去不去掉 都是乱码 一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-13 17:21:57 | 显示全部楼层
ジ秋水 发表于 2018-7-13 17:16
这里的&去不去掉 都是乱码 一样的

你输入了什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 17:26:00 | 显示全部楼层

输入字母
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-13 17:34:01 | 显示全部楼层
本帖最后由 关键是感觉 于 2018-7-13 17:51 编辑
  1. #include <stdio.h>
  2. struct b{
  3.         char name[256];
  4. };
  5. int main(){   
  6.         struct b stu[50];

  7.         scanf("%s",stu[0].name);
  8.         printf("stu[0].name=%s\n",(*stu).name);
  9.         scanf("%s",&stu[0].name);
  10.         printf("stu[0].name=%s\n",stu[0].name);
  11.        
  12.         //stu[0].name是一个地址
  13.         //根据优先局 .比&高 先结合 stu[0].name 在对一个地址 :& 地址 还是原来的地址
  14.         //但是我感觉这个说法有点问题,如果你对一个地址在取一个地址在某些情况有出错比如
  15.         //int b; printf("%p %p\n",&b,&&b);
  16.         //还有一个情况是这样         int array[20]={0}; printf("%p %p",array,&array);  
  17.         //array其实是一个常量地址 但是对一个常量地址 & ,他们结果是一样的
  18.         printf("%p %p %p\n",stu[0].name,&stu[0].name,&(stu[0].name));
  19.        
  20.         //说了那么多,其实错误和 &没关系
  21.         //和scanf_s有关系,也和编译器有关系
  22.         //例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。
  23.         //参数3有一个长度,而你没有加
  24.         //在dev-c++ 有自动帮你处理,在VC没有处理,看gif
  25.         scanf_s("%s",stu[0].name);
  26.         printf("stu[0].name=%s\n",(*stu).name);
  27.         scanf_s("%s",&stu[0].name,256);
  28.         printf("stu[0].name=%s\n",stu[0].name);
  29.         return 0;
  30. }

复制代码


1.gif
2.gif
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 18:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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