- 论坛徽章:
- 0
|
- #include <stdio.h>
- #include <string.h>
- char str[5];
- char pad[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
- int main()
- {
- printf("str's address before strcpy: %x\n", str);
- printf("pad's address before strcpy: %x\n", pad);
-
- strcpy(str,"1234567890abcdefghijklmnopqrstuvwxyz");
-
- printf("str's address after strcpy: %x\n", str);
- printf("pad's address after strcpy: %x\n", pad);
-
- printf("strlen(str): %d\n", strlen(str));
- printf("str=%s\n, str);
- return 0;
- }
复制代码
运行后竟然输出:
str's address before strcpy: 8049764
pad's address before strcpy: 8049720
str's address after strcpy: 8049764
pad's address after strcpy: 8049720
strlen(str): 36
str=1234567890abcdefghijklmnopqrstuvwxyz
是编译的时候把str的长度增加了吗? |
|