指针题目求教

来源:百度知道 编辑:UC知道 时间:2024/06/11 04:02:54
void fun(char *a, char *b)
{ a=b; (*a)++; }
main ()
{ char c1="A", c2="a", *p1, *p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf(“&c&c\n”,c1,c2);
}
请帮助分析

#include<stdio.h>
void fun(char *a, char *b)
{ a=b; (*a)++; }
void main ()
{ char c1='A', c2='a', *p1, *p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf("%c,%c\n",c1,c2);
}
这是修改后的程序,调试也没问题。
你应该是刚学习C,要把基础的东西理理顺。
char c1='A'(单引号)是声明c1为字符变量,初值为'A',而你想定义一个字符串的话有两种方法1 char c1[]="a"(双引号),或者2 char *c1="a";还有printf输出格式也错了,头文件没有,函数没返回值请加个void。
指针本质上就是地址,通过传址调用能在被调函数中改变实参的值。
C也不允许数组的直接整体赋值,如果是字符串的话可以用strcpy(a,b)包含在头文件#include<string.h>
感觉你现在需要的是把你的教材读读,再做这些题目。
2009年2月24日23:27:03

输出Ab

你的代码有语法错误。