c语言 char数组 *c="BOOK";

转贴:#你知道么# 刚刚看到一个很有意思的问题:char c = -1; prin..._c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:332,484贴子:
转贴:#你知道么# 刚刚看到一个很有意思的问题:char c = -1; prin...收藏
帮我选一下答案吧....char c = -1; printf(&%x\n&,c);为什么是ffffffff而不是ff?printf(&%x\n&,c); -- 转为long int 16进制输出. ff 输出:#include &stdio.h&int main(){char c = -1; printf(&转自:
char c = -1; printf("%x\n",c);为什么是ffffffff而不是ff?1 小时前提问者: 7933419 |
悬赏分:30 |浏览次数:144次如题:char c = -1; printf("%x\n",c);为什么是ffffffff而不是ff?问题补充:我似乎明白了,但是选答案好纠结。。处理提问 及时采纳满意回答并感谢回答者,可获得2分经验值奖励。 还可以补充内容或提高悬赏吸引更多回答者:补充问题修改分类提高悬赏在线求助按默认排序|按时间排序 回答 共6条1 小时前金色潜鸟| 当前分类:23 级 排名:36printf("%x\n",c); -- 转为long int 16进制输出。 ff 输出:#include &stdio.h&int main(){char c = -1; printf("%x\n",(unsigned char) c);
//ff 输出printf("%x\n",0xff & c);
//ff 输出return 0;}追问我的天,我又懵了,到底是转为long int还是int呀,前面都说是int。不过抛开这个不说,能解释一下:printf("%x\n",(unsigned char) c);还有printf("%x\n",0xff & c);这个是不是只是为了输出ff而做的?解释一下为什么这样就可以是原始值了吧,谢谢!回答long int -- 4字节printf("%x\n",(unsigned char) c);
// 强制转化为 原1字节定义。printf("%x\n",0xff & c);
只需要1字节,可以用 按位与 运算 取出来。0|评论(6)); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&选为满意回答); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&继续追问49 分钟前Jaxenix| 当前分类:7 级类型提升, short和char都会提升到int,要查看原值, 你可以自己写个print_bytes函数typedef unsigned char *byte_void print_bytes(byte_pointer start, int len){
for(i = 0; i& i++){
printf(" %.2x",start[i]);
printf("\n");}调用就用 print_bytes((byte_pointer)&c,sizeof(char)), 这个函数对其他类型也适用...只是打印char的话直接用printf(" %.2x",(unsigned char)c);也行追问类型提升, short和char都会提升到int。。。这个我知道,不过这点是强调的是如果参与运算了,就会那样。但是我本意就不让其参与运算,还有这涉及不涉及内存对齐呢?回答你用%x打印char, 就是在让它参与运算啊, 因为%x是打印int, 当然会把char转换为int不然你就用printf(" %.2x",(unsigned char)c); %.2x就是打印两位16进制这个不涉及内存对齐..0|评论); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&选为满意回答); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&继续追问29 分钟前kuliuheng| 当前分类:2 级好吧,哥哥,您的追问精神让我感动了,小弟斗胆献上一计,请君笑纳: (1)就用VC++6.0建立一个C++工程吧,写上如下代码:(2)然后按下键盘上的F10,进行单步调试运行,右键单击代码区,在弹出的菜单中选择“Go To Disassembly” 进入汇编代码模式:(3)可以看到c的真实内存值哦~!
小弟献丑了~! ^ ^0|评论(1)); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&选为满意回答); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&继续追问1 小时前陈宗权| 当前分类:21 级 排名:125因为%x是用来输出一个int类型的数据的。在你调用printf传递变量c的值的时候,系统会自动把c的值-1扩展成int类型的值-1,这也是C语言中的一个规定.追问就想看看c的真实的值?就有重重困难吗?有没有办法,谢谢回答有啊,printf("%x\n",c);改成printf("%x\n",(unsigned char)c);追问这有解释吗,unsigned char?我不理解为什么会用到它,我本意是不运算,不强制转换就看c的真实值,你这个做法是可以显示出ff了,但意义一样不一样呀,我可不可以说printf(“ff”);也可以打印出ff。真心求解,别无它意。0|评论); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&选为满意回答); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&修改追问检举|1 小时前微小单片机| 当前分类:8 级%x是显示补码的,-1补码32个1,就是ffffffff,要想显示ff应该是255追问看前两位的回答,感到你说的有所不足之处:我知道是补码,但是我用的char型的,补也应该是ff呀,一个字节嘛。来自:求助得到的回答0|评论(1)); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&选为满意回答); background-color: background-position: 100% -682 background-repeat: no-repeat no- "&修改追问1 小时前ssgo66| 当前分类:12 级 排名:4747%x是int型,所以会将char强转为int追问怎么打印才能不涉及运算和强制转换呢?就想看看c的真实的值?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或您还未登陆,请登录后操作!
请帮我解答几道C语言的题
要求用来求出两个整数之和,并通过形参传回两数相加之和值,请填空.
int add(int x,____z)
{____=x+y}
答案是:1空是int*
为什么不能是
#include &stdio.h&
#include &string.h&
void fun(char *s)
char a[10];
strcpy(a,&STRING&);
printf(&%s\n&,p);
上面程序的输出结果是(D)
A&STRING[][][][]
([]代表空格)
C&STRING[][][]
D&不确定的值
为什么不选A呢
3)下面函数的功能是(A)
{ char *y=x;
while(*y++);
return(y-x-1);
A&求字符串的长度.
B&比较两个字符串的大小.
C&将字符串x复制到字符串y.
D&将字符串x连接到字符串y后面.
为什么选A呢,他是怎么求字符串的长度了?
4)一直字符0的ASCII码为十六进制的30,下面程序的输出是(B)
unsigned int i[4];
z.i[0]=0x39;
z.i[1]=0x36;
printf(&%c\n&,z.c);
怎么能知道z.c是什么呀????
5)设有如下定义: char *aa[2]={&abcd&,&ABCD&};
则以下说法正确的是(C)
B&aa是指针变量,他指向含有两个数组元素的字符姓一维数组.
C&aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址.
为什么B不对呀???
6)下面的程序用来统计文件中字符的个数,请填空.
#include&stdio.h&
long num=0;
if((fp=fopen(&fname.dat&,&r&))==NULL)
{printf(&can&t open file!\n&);exit(0);}
{fgets(fp);num++;}
printf(&num=%d\n&,num);
fclose(fp);
答案是:(feof(fp)==0)或(feof(fp)==&\n&)或(feof(fp)==NULL)或(!feof(fp))
feof是什么意思,如何用,
exit(0)是什么意思,exit如何用.
1.因为Z的值是需要改变,所以使用指针传递值
2.函数完了之后,它对应的变量应该被消除了
3.当Y对应的值为0,也就是字符串最后一个字节时,while结束,两个地址的差值就是长度
4.z.c可以通过联合体对应的值得到
5.指针变量怎么可能指向两个东西?
6.feof(FILE *)返回非0值,如果当前文件指针对应的是文件末端时
:程序退出。
您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注
cout<<c<<'\n'<<d<c++中如何定义字符型变量 例如这段程序...
<a href="/b/.html" target="_blank" title="c++简单的问题 输出语句中
cout<<n<<"is larger than 100.\n";
cout<c++简单的问题 输出语句中
<a href="/b/.html" target="_blank" title="求数据结构问题的答案(1) 要求:为宿舍管理人员编写一个宿舍管理查询小程序(用C语言),要求:
程序采用交互工作方式
建立数据文件
数据文件按关键字(姓名,学号,房号)进行排序(冒泡,选择,快速等任选一种)
查询菜单:(用二分查找实现操作)
按姓名查找
按学号查找
3按房号查找
显示任意查询结果(可以连续操作)
为什么执行不了执行一两次后就自动退出显示错误,是不是全局变量有问题,哪位高手能帮忙修改过来啊,谢啦啊。
maxnum 100
}stu[maxnum];
//--------------------------------------------对姓名选择排序
swapn[20];
swapxh[20];
for(i=0;i<num-1;i++)
for(j=i+1;j0)
strcpy(swapn,stu[i].xm);
strcpy(stu[i].xm,stu[k].xm);
strcpy(stu[k].xm,swapn);
strcpy(swapxh,stu[i].xh);
strcpy(stu[i].xh,stu[k].xh);
strcpy(stu[k].xh,swapxh);
swapsh=stu[i].
stu[i].ssh=stu[k].stu[k].ssh=
//-----------------------------------------------------------------------
for( i=0;i<n;i++)
cout<<stu[i].xm<<" "<<stu[i].xh<<" "<<stu[i].ssh<<
//----------------------二分查找
chazhao(char
while(low<=high)
mid=(low+high)/2;
if(strcmp(a,stu[mid].xm)==0)
cout<<" "<<stu[mid].xm<<" "<<stu[mid].xh<<" "<<stu[mid].ssh<0)
low=mid+1;
(strcmp(a,stu[mid].xm)<0)high=mid-1;
cout<<"无要查同学!"<求数据结构问题的答案(1) 要求:为宿舍...
<a href="/b/.html" target="_blank" title="问strcat(line,xx[i] + n + 1);什么意思 题目是这样的
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以读入文章的行为单位,以空格或标点符号(数据文件中仅含','或'.'作为标点符号)作为分隔符,对行中所有单词进行倒排,单词间仍以空格作为分隔符,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后main()函数调用函数writeDat()把结果xx输出到文件OUT6.DAT中。
例如:原文:You He Me
I am a student. I like study.
     结果:Me He You
study like I student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
答案是这样的可是我不太明白
void StrOL(void)
char line[80]; /*字义一个长度为80的字符型数组*/
for(i=0; i < i++) /*设置循环初始值和终止值*/
line[0] = 0;
n = strlen(xx[i]); /*strlen函数的功能是统计第i行字符串中字符的个数*/
while(--n)
if(!isalpha(xx[i][n])) /*调用isalpha函数判断单词是否结束*/
strcat(line,xx[i] + n + 1); /*strcat函数的功能是实现字符串的连接*/
strcat(line," ");
xx[i][n] = 0;
strcat(line,xx[i]);
strcpy(xx[i],line); /*strcpy函数的功能是将后一字符串拷贝到前一字符中*/
问:isalpha(xx[i][n])究竟是什么函数,返回什么值
strcat(line,xx[i] + n + 1);实现字符串的连接可是xx[i] + n + 1字符串和整形相加是什么啊,这也不是字符串啊 xx[i][n] = 0;又是什么意思啊 后面两行也不太明白麻烦详细讲解一下谢谢
源程序是这样的
char xx[50][80];
int maxline=0;/*文章的总行数*/
int ReadDat(void);
void WriteDat(void);
void StrOL(void)
void main()
system("cls");
if(ReadDat()){
printf("数据文件IN.DAT不能打开!\n\007");
WriteDat();
int ReadDat(void)
if((fp=fopen("IN.DAT","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
maxline=i;
fclose(fp);
void WriteDat(void)
system("cls");
fp=fopen("OUT6.DAT","w");
for(i=0;i问strcat(line,xx[i] +...您还未登陆,请登录后操作!
c语言连接问题
&,*p2&ABCD&,str[50]=&xyz&;strcpy(str+2,strat(p1+2,p2+1));printf (&%s&,str);
您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注
想学C语言该买什么书看? 在网上找了很多...
>(istream&in,student&stu);//友元运算符重载 (stringname="",stringid="",stringnum=""):person(name,id),m_num(num){}stringget()const{returnm_} //学号};istream&operator>>(istream&in,student&stu){cout<<"inputstudentinfomation:"<<cout<>stu.m_cout<>stu.m_cout<>stu.m_}classCClass{ ():stu(newstudent()),num(0){}CClass(intstunu):stu(newstudent[stunu]),num(stunu){}//函数重载~CClass(){} *//类的组合};//测试intmain(){cin>>CCCClassclas(10);return0;}">谁能给程序加上注释,谢谢 #includ...您还未登陆,请登录后操作!
C语言,能进行字符串赋值的是
;*sp=&right!&;
(B)char s[10];s=&right!&;
(C)char s[10];*s=&right!&;
(D)char *sp=&right!&;
最后一个能获取到值.
大家还关注

我要回帖

更多关于 c语言int转char 的文章

 

随机推荐