我正在为测试字符串文字和整数数组编写此代码。我需要有人帮助我检查并减轻我的负担。可以指向一个整数数组用于修改数组吗?
1)。
char NUM[] = "ABC";
char *p_NUM=NUM;
NUM[0]='D';
puts(p_NUM);
return 0;
如果您从字符串文字创建数组,那么您可以对其进行修改。
2)。
char *p_NUM="ABC";
p_NUM[0]='D';
puts(p_NUM);
return 0;
指向字符串文字的变量不能用于更改字符串的内容。所以这一个会返回一个错误。 3)。
int NUM[] = {1, 2, 3};
int *p_NUM = NUM;
p_NUM[0]=4;
puts(p_NUM);
printf("%i\n",p_NUM);
int i;
for(i=0;i<4;i++)printf("%i",p_NUM[i]);
return 0;
的puts(p_NUM);
和printf("%i\n",p_NUM);
结果是相当有趣的。我不知道为什么。 4)。
int *p_NUM = { 1, 2, 3 };
p_NUM[0] = 4;
int i;
for (i = 0; i < 4; i++)
printf("%i", p_NUM[i]);
return 0;
这一个编译器返回一个错误,这意味着指向一个整数数组不能用于修改数组,正确吗? 5)。
int NUM[] = { 1, 2, 3 }; int * p_NUM = NULL; // integer pointer
p_NUM = NUM; // integer pointer pointing to integer array
如果我这样写,它是一样的吗?
int NUM[] = { 1, 2, 3 };
int * p_NUM = NUM; // integer pointer pointing to integer array
你觉得呢'INT * p_NUM = {1,2,3};'是干什么的? – 2015-04-02 08:57:59
我不知道。 – 2015-04-02 09:49:11