【发布时间】:2016-08-24 12:02:25
【问题描述】:
我试图了解指针,但此代码似乎返回了不正确的值。
char start[5]= "1234"; // Auto adds Null Char;
char* p_start;
int i;
int main(){
printf("Original %s\n",start);
p_start = start;
for (i=0; i<4; i++)
{
// start[2]='j';
printf("Line 1 %c\n",start[i]);
start[2]='k';
printf("Line 2 %c\n",p_start[i]);
}
return 0;
}
Original 1234
Line 1 1
Line 2 1
Line 1 2
Line 2 2
Line 1 k ---------------- Why is this not 3
Line 2 k
Line 1 4
Line 2 4
如果我取消注释 start[2]='j';然后我得到 p>
Original 1234
Line 1 1
Line 2 1
Line 1 2
Line 2 2
Line 1 j Correct
Line 2 k
Line 1 4
Line 2 4
那为什么 3 不带打印呢?
谢谢华莱士
【问题讨论】:
标签: arrays string void-pointers