2 u013370108 u013370108 于 2016.04.07 09:57 提问

为什么char型数组定义在注释的地方就不行?
 package cn.lut.test;

public class InvokeTest {
    char a[]={'a','b','c'};
    public static void main(String[] args) {
        //char a[]={'a','b','c'};
        InvokeTest test=new InvokeTest();
        System.out.println(test.a);
    }
}

8个回答

qq_25827845
qq_25827845   2016.04.07 10:16
已采纳

看懂了。。。你那个test是InvokeTest类的一个对象,其只可以调用该类的成员方法和成员变量,你在成员方法中定义了一个变量,其并不属于该类的成员变量,故会报错。

theSnai1
theSnai1   2016.04.07 12:37

IDEA 亲测,上面的代码可以运行

xionglangs
xionglangs   Rxr 2016.04.07 13:37

对象只能调用自己有权限的方法和自己有权限的属性,你放在上面就表示这个a的char数组是类的属性,而且这个对象有权限调用,就可以使用,但放在方法里面,就不是类的属性了,只是个局部变量,对象只能通过调用它的方法来修改局部变量的值(比如通过传参改值)。

chenhchen1994
chenhchen1994   2016.04.07 10:05

在上面的定义的是全局变量。 而你在main 方法里面直接定义一个Char[]数组 你重新new了一个自身的方法 去调用main里面的方法肯定不对的啊

qq_25827845
qq_25827845   2016.04.07 10:05

表示看不懂你要表达的问题

suixianghui1989
suixianghui1989   2016.04.07 10:12

在那定义,属于局部,调用的方式需要改下

yujava2014
yujava2014   2016.04.07 13:41

楼上的顶,是可以的,只会输出全局变量a里面的内容

qq_26431469
qq_26431469   2016.04.08 11:13

可以输出啊 ,不过输出的是上面全局的 main方法中的被注释掉 不会执行

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用char型数组过程中遇到的问题
简述最近开发中用到了char数组来接收数据 , 在使用中遇到了一些问题,这里记录一下,同时也回顾一下char数组的用法。代码之路事例一:char aa[0];首先,我们要知道,0长度的数组在ISO C和C++的规格说明书中是不允许的,用VS2013编译报错:“不能分配常量大小为 0 的数组”。事例二:char aa[4] = "1234"; 这样我们定义一个长度为4的数组,直接赋值“1234”,这
字符数组和字符串,char 和string定义的字符串的区别与遍历
字符数组:存在字符的数组字符串 :是使用最频繁的字符数组,是一个特殊的字符数组C++中并没有专门的字符串的类型,一个字符串实际上就是一个字符数组,与普通字符数组不同的是,字符串的结尾有一个字符\0,表示字符串的结束。char 可以定义字符数组,也可以定义字符串char 定义的字符数组char b[]={'h','e','l','l','o'};//生命字符数组,长度为5char定义字符串字符串的优势
char数组长度
http://blog.csdn.net/songjinn/article/details/17194855 在VC++编程中经常需要判断char类型数组的长度,以下代码可供参考。 windows系统下可以使用_mbslen函数 C/C++ code ? 1 2 3 4 5
C经典 Char型指针数组与字符数组的区别
1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变char *name[3] = { "abc", "def", "gbk" }; for(int i = 0 ; i < strlen(name); i ++){ printf("%s\n", *(name+i)); //printf("%s\n", name[i]); }//指向改变 n
string和char型数组的区别
总的来说,string比char[]更耗时,比如apend()这种函数,而string能完成的操作char[]基本都可以实现。 1.赋值 char赋值:  char ch1[] = &quot;give me&quot;;   char ch2[] = &quot;a cup&quot;;   strcpy(ch1,ch2);   cout&amp;lt;&amp;lt;&quot;ch1=&quot;&amp;lt;&amp;lt;ch1&amp;lt;&amp;lt;endl; 输..
定义char数组时的一个问题
<br />今天遇到一个有趣的关于在C中定义char[]变量时的一个问题,程序大致如下:<br />int main()<br />{<br />    int t;<br />    char ch_t[32];<br />    t=1000;<br />    itoc(100, ch_t);  //把100用二进制字符串显示出来<br />    printf("100 is %s./n", ch_t);<br />    printf("t is %d./n", t);<br />}<br /> 
CHAR数组初始化
CHAR数组初始化 一般的数组初始化,也就是申请数组的时候我们就初始化。 1. char buffer[1000] = {0}; //一般的话,我们只将数组初始化为0,然后再使用。C++中编译器会把第一个初始化值赋给数组的第一个元素,然后用0赋值给其余的元素。 2. char buffer[] = {1,2,3,4,5,6}; 数组会自动计数,我们不用指定数字,以免画蛇添足反而出错。 3.
matlab里cell和char,字符串与字符数组(zz)
原文链接: http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html 用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。 我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。 就像没有str2cell一样。 实现str2cell
避免用char类型作为数组小标
在统计字符串的时候常用数组来统计,字符为数组下标,如求字符串中第一个不重复(只出现过一次)的字符 但是字符的类型是char类型可能为负数,不能做下标。 不能把char强转成 unsigned int 做下标,因为类型提升的时候,是按照高位填充的多余字节,如果char本身为负数,第8位就是1,转成 unsigned int 或者int时多出来的三个字节都是填充1;如果是0,则都填充0 如 ch
定义char时加单引号与不加单引号的区别
不加单引号:在不超过范围情况下可定义多个数字,不能定义字符 定义的数值是国际编码表的码值,此码之会对应一个特定的字符 单独输出时输出的是对应的特定字符 运算时转换为int型的数字(数字的值就本身)加单引号;只能定义一个字符 定义的字符为国际编码表中特定的字符,此字符对应一个码值 单独输出时输出的是字符本身 运算时转换为int型的数字(数字的值是字符对应的码值) 如下图: