软件char报错(程序报错apphangb1)
int a; a=1; char='a'; char为什么报错?
语法上没问题,可以的。
char a[2]="1"; //声明和初始化,正确。
char *p=a; // 声明p 是 char 型指针,初始化 是把 数组a的首地址给它,让指针指向 a[0], 可以。
int b = *p; // 声明b, 并 把 p 指向的字符的ASCII值 转为 int 型,初始化 b. 这里 的 b 得到的值 等于 '1' ( 字符常量,带单引号的1)。
下面的例子看得更清楚:
#include stdio.h
int main (){
char a[4]="XY";
char *p=a;
int b=*p;
printf("p=%s b=%d b=%c",p,b,b);
return 0;
}
输出:
p=XY b=88 b=X

Dev C 里面 char 类型在第二次赋值后报错
给你解释一下:
char uName[20]="peng";//申明了一个数组,数组首地址是uName,数组内存初始化为"peng"。uName是不能被修改的一个常量指针
uName="kk";//意图修改一个常量
解决措施
1,将uName改为一个指针
char *uName="peng";//
uName="kk";
2,使用strcpy(char a[],const char b[])给字符数组赋值
char uName[20]="peng";
strcpy(uName,"kk");
C中用%s输出char类型的单个字符,程序崩溃,为什么?
因为%s格式字符串会从给定的内存空间开始向后逐个输出字符,直到遇到\0结束。格式字符串为%s时,后面的参数应该为一个内存地址(指针),如果给出的是一个字符变量,那么会将字符变量中的值认作地址,例如字符变量ch中保存的是字符'a',那么printf会将'a'对应的ASCII码97作为内存地址,试图转到该位置读出数据;而该位置的内存空间属于操作系统,为保护段空间不可访问,因而程序崩溃。这是非常严重的错误。
java中char中赋值出错。。。。晕了。。。
解决方法:你应设置
ch
为String。或者赋值的时候='A'
。这样也可以。
错误原因:因为你现在的赋值是字符串,并且你的ch是
char类型的。所以就出错了。
char是字符,用单引号括起,但是只能括起一个字符。
你一次那么多字符应该使用String
类型。
给一个char10的类型中输入不到十个字符时会报错无法输入吗
给一个char10的类型中输入不到十个字符时会报错无法输入,char的长度是不可变的,char类型的长度被定义为一个8位字节。因次会出现输入不到十个字符时会报错无法输入。