【发布时间】:2013-06-28 10:20:59
【问题描述】:
以下两个程序使用一些基本的指针操作。但他们的表现不同。
#include<stdio.h>
#include<string.h>
int main(void){
int a = 1;
int b = 2;
int *pb, *pc;
pb = &a;
pc = pb;
pb = &b;
printf("%d %d\n", *pb, *pc);
}
此程序按预期打印两个不同的数字(1 和 2),而
#include<stdio.h>
#include<string.h>
int main(void){
char *ptr, s[10];
ptr = s;
gets(s);
printf("%s %s\n", ptr, s);
}
这个程序两次打印相同的字符串,但它也必须打印不同的字符串。
为什么会有这种差异?
gets() 如何读取字符串?
【问题讨论】:
-
“它必须有”...什么?为什么?
-
我感觉你根本不知道指针到底是什么......
-
“而它也必须打印不同的字符串”——废话;它显然会打印两次相同的字符串。 “为什么会有这种差异?” -- 因为它们是完全不同的程序。
标签: c string pointers c-strings