C#_____找错误

本文探讨了C#编程中遇到的一些常见错误,包括编译器报错无法输出字符串f、编译器显示乱码、结果错误以及变量a的值打印不正确的问题。错误可能源于字符串结束符、数据类型转换和格式化输出等方面,对每个问题进行了详细解释和解决方案的提出。
摘要由CSDN通过智能技术生成

为什么编译器会报错, 不能输出字符串f

0001

#include <stdio.h>

int main(void)
{

	char a= 'f';			
	printf("%s", a);

	return 0;
}

为什么编译器输乱码

0002

#include <stdio.h>
int main(void)
{
	char a[5] = {'A','B','C','D','E'};
	printf("%s\n", a);
	return 0;
}
ABCDE烫烫烫?翅@堸?

为什么输出结果错误

003

#include <stdio.h>
int main()
{
	printf("整形输出:%d\n", 1 + 2.0);

	return 0;
}
整形输出:0


为什么a 的值打印不对

004

#include <stdio.h>
int main()
{
	int i = 1;
	unsigned int a = 4294967295;
	printf("%d\n", sizeof(i));			//字节占用
	printf("%d %d", a, a + 1);

	return 0;
}
4
-1 0










以下为答案

0001

printf("%c", a);			//此处打印函数使用错误  %c = 输出字符串


0002

为什么会出现乱码呢, 是因为存储字符串末尾会有 \0 作为编译器判断字符串结束.
如果没有预留给 编译器, 那么编译器会一直读取下去.!

char a[6] = {'A','B','C','D','E'};						//字符串常量

标准答案是,

char a[6] = {'A','B','C','D','E','\0'};						//字符串常量

其他写法
1.

char a[] = {'A','B','C','D','E','\0'};						//

2

char a[] = {"ABCDE"};						//字符串常量  这里是双引号
char a[] = "ABCDE";						//也可以去掉{}


0003

为什么第一个编译器会出错呢,
1+2 不等于3吗, 为什么1+2 等于 0 了呢.
因为 1 + 2.0 ,会自动 转换成 浮点型相加,
1.0 + 2.0 float. 而强制把他转换成整数输出, 所以编译器出错

printf("浮点型输出: %f\n", 1 + 2.0);
浮点型输出: 3.000000


0004

因为 unsigned 是无符号, 用%u输出啊~!!!

	printf("%u %u", a, a + 1);
4294967295 0


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值