java char数组最大长度减法问题,求大神解决;

C语言求数组长度及其他问题,求大神秒杀!如下:_百度知道
C语言求数组长度及其他问题,求大神秒杀!如下:
#include &stdio.h&typedefuchar a[]={0x00,0xff,0x00,0x00};uchar *p;void main(){
uchar count=0; p=a;
while(!p==NULL)
怠畅壁垦撰旧辩驯菠沫
printf(&%d&,count);}目的求a[]的长度,是否可求?这样又会遇到printf什么都不显示?又是什么原因呢?
提问者采纳
a的长度当然可以求:sizeof(a)/sizeof(uchar);完整程序:#include&&stdio.h&typedef&unsigned&char&uchar&a[]={0x00,0xff,0x00,0x00};uchar&*p;void&main(){&&uchar&count=sizeof(a)/sizeof(uchar);&&&怠畅壁垦撰旧辩驯菠沫printf(&%d&,count);}但是你的方法却有可能是很久的循环,所以运行看起来没有输出,运行很久后可能会得到错误的结果,还是有输出的
为什么会是很久的循环呢?正是这个地方不是很理解?能解释下么?
while(!p==NULL)//因为p一直都有地址啊,无论你如何++,它始终会指向一块内存指针,所以它理论上永远不可能为空指针啊
我刚才又试了一遍,发现 while(!p==NULL)
while(p!=NULL)
其实都有结果,要等待大概一分多钟时间,然后出现了同样的结果208,很是奇怪啊?
那是可能因为操作系统一个内存块大小是固定的,因此p++走完一个内存块后就变成空指针了。理论上p永远非空,实际上却与内存分配方式有关;while(!p==NULL)
while(p!=NULL)这两个表达式是等价的
提问者评价
It's very kind of you to patiently answer my questions! You are competent for the gold coins !
其他类似问题
按默认排序
其他2条回答
p是个地址 #incl怠畅壁垦撰旧辩驯菠沫ude &stdio.h&typedefuchar a[]={0x00,0xff,0x00,0x00};uchar *p;void main(){
uchar count=0; p=a;
while(*p!=NULL)
printf(&%d&,count);}改为*p因为当*p不为NULL(0)的时候count++;但是0X00是十六进制的0所以直接输出了结果0;没有执行while循环。
可求,长度为4个char。不会执行到printf(&%d&,count);,因为p++就算超出范围也不会为NULL,while(!p==NULL)应改为while(p&&a+sizeof(a))
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言数组问题,求大神指导小弟
15:46:48&&&来源:&&&评论: 点击:
输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。
这是我的代码,不过当输入"."之后不能打印,求大神解释
#import&&Foundation/Foundation.h&
int&main()
&&&&char&c[256]={0},b[26]={0};
&&&&&&&&for&(int&i=0;i!=".";&i++)&{&&//逐个输入字母,以‘.’结束
&&&&&&&&scanf("%c",&c[i]);
//循环参照
//&&&&&&&&if(c[i]==97)
//&&&&&&&&&&&&b[0]++;
//&&&&&&&&else
//&&&&&&&&&&&&if(c[i]==98)
//&&&&&&&&&&&&&&&&b[1]++;
//&&&&&&&&&&&&else
//&&&&&&&&&&&&&&&&if(c[i]==99)
//&&&&&&&&&&&&&&&&&&&&b[2]++;
//&&&&&&&&
&&&&&&&&for&(int&j=0;&j&26;&j++)&{&//每个字母小于26
&&&&&&&&&&&&if&(c[i]==97+j){&&&&&&&//如果c[i]与26个字母中的第j个相等
&&&&&&&&&&&&&&&&b[j]++;&&&&&&&&&&&&//则该字母个数+1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//相等之后立马跳出循环
&&&&&&&&&&&&}
&&&&for&(int&i=0;&i&26;&i++)&{
&&&&&&&&if&(b[i]==0)&{
&&&&&&&&&&&&
&&&&&&&&else
&&&&&&&&&&&&printf("%c:%d","a"+i,b[i]);
&&&&printf("\n");
&&&&return&0;
相关热词搜索:
频道总排行
频道本月排行Java中string和char比较问题 - 挑挑拣拣问答
& &&Java中string和char比较问题
,存的是汉字,因为java中char只能存一个汉字char c =&#39!; 我用String str = " 取出数据库中 的char类型小明
string类型的小明如何比较啊?!我在数据库中存的name是char(10)?if(Boolean){}需要一个布尔型的;;小明&quot,现在相比较一下!求大神解答;ren&#39?
问题补充&&
我想你可能有所混淆
数据库中的 char类型没错可视读取的时候
你是不是要 while()然后
if(&小明的列名&quot.getString(&quot.next()){} 这样来读然后 实体类中 声明一个 String 类型变量
str=小明&quot
zhangqi0192 &17:07
数据库中char(10)表示的是一个长度小于等于10的字符串
进击BrantHu&17:10
对此问题的评论求大神帮忙求解指针数组
[问题点数:20分,结帖人u]
求大神帮忙求解指针数组
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Java中怎么把int型的数字转换成char型的数字
int型变量num的值为8,
char型变量ch,
通过什么方法让num和ch两者之间建立联系使得
char型数据ch的值为&8&?
已解决&&-&&0个回答&&-&&
public class Int2CharDemo {
public static void main(String[] args) {
// 将int类型数字8转换为char类型数字8
int num1 = 8;
char ch1 = (char) (num1 + 48);
System.out.println(&ch1 = & + ch1);
// 将char类型数字8转换为int类型数字8
// 方法一:
Character ch2 = '8'; // char是基本数据类型,Character是其包装类型。
int num2 = Integer.parseInt(ch2.toString());
System.out.println(&num2 = & + num2);
// 方法二:
char ch3 = '8';
int num3 = ch3 - 48;
System.out.println(&num3 = & + num3);
ch = (char)
楼主您好,希望我的答案能对您有所帮助:
您可以用 int num = Integer.valueOf(ch); 来实现int转换为String
int num = 8;
System.out.println(Byte.parseByte(String.valueOf(num)));
您已收藏过该问题

我要回帖

更多关于 char数组初始化 的文章

 

随机推荐