一个简单的C程序,请高手解释一下

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:31:53
#include "stdio.h"
main()
{
int good=3;
char *p;
p="good"+good;
printf(p) ;
}
这里的P为什么要是指针类型啊?这里的转换赋值是什么意思?
如果直接把P定义为字符串类型的可以吗?

char只能接收单个字符的赋值,指针就可以接收一个字符串了,因为它是指向这个字符串的首地址,这里+good就是代表把指针的地址+3位,输出应该是字符d

楼上的错了
输出的不是d吧
应该*p才识d
这个程序本身好象是错的吧,我也好久没看C了

include "stdio.h"
main()
{
int good=3;
char *p;
p="good"+good; //这里报错
printf(p) ;
}

修改如下:
include <stdio.h> /* <> 和""是有区别的,标准头文件最好用<> */
main()
{
int good = 3;
char *p = "good";
char *q = p + good;
printf("%c",*q) ;
}

不能直接定义成字符串类型.字符串类型不能进行p="good"+good; 此句。
+good 是指p所指的内存地址加3。
最后输出应该是 *p