c语言指针方面问题

2025-05-21 18:09:04
推荐回答(5个)
回答1:

第一,指针类型的变量(以下称指针变量)是用来保存地址的,指针变量的类型决定了它可以保存哪种类型的变量的地址。char *s说明s可以用来保存一个char类型的变量的地址(char *是s的类型,说明s可以保存一个char类型的变量的地址)。
第二,s是指向c[0]的,即s保存的是c[0]的地址(s的值是c[0]的地址),对于A. printf("%s\n", s);%s说明是输出一个以'\0'结尾的字符串,字符串的起始地址在s中,而beijing只有7个字符,数组c分配了8个字节的空间,所以有空间容纳自动添加的'\0',所以A正确。
第三,*是用来说明s是指针类型的。

回答2:

ptr重复申明, 两个类型不一样; 表达式必须有指向对象类型的指针

回答3:

你是不是疯了乱发问题,你这样会死的小老弟

回答4:

#include 
int sum(int* a, int* b)
{
    return *a + *b;
}
int swap(int *a,int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
    return 0;
}
int main()
{
    int a,b,(*p)(int*, int*);
    scanf("%d,%d",&a,&b);
    p=sum;
    printf("sum=%d\n", p(&a, &b));
    p=swap;
    p(&a, &b);
    printf("a=%d,b=%d\n",a,b);
}

回答5:

30分钟彻底学会C语言指针