我的教授在网上上传了一些代码,但我发现很难理解这个变量:
char * x[5];
这是否代表5个空格x用于指向字符的指针? 所以如果我要说
x[0]="Apple";
这会有效吗?
答案 0 :(得分:3)
这是否代表5个空格x用于指向字符?
是。检查此问题的一种方法是评估sizeof(x)
,sizeof(x[0])
和sizeof(*x[0])
。在我的x64机器上,评估为40,8和1的指针长度为8个字节,因此char* x[5]
声明了五个指针。
x[0]="Apple";
会有效吗?
是的,虽然它可能没有达到你的预期。此处,x[0]
设置为指向字符串文字,x[1]
到x[4]
的值未定义。请注意,因为"Apple"
是一个字符串文字,所以它是只读的;你无法保证能够修改它。
答案 1 :(得分:2)
是的,它是什么,即5个char
指针的数组,实际上
x[0] = "Apple";
有效。