c语言指针问题
#include <stdio.h> main() { void swap(int *p1,int *p2); int a,b; int pointer1,pointer2; printf("please input a & b:\n"); scanf("%d,%d",&a,&b); pointer1=&a; pointer2=&b; if(a<b) swap(pointer1,pointer2); printf("The result is:%d,%d\n",*pointer1,*pointer2); } void swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; }; 这个程序作用是应用指针将输入的两个值从大到小输出,编译时候在main函数最后的printf处出现“illegal indirection”,而将printf后面*pointer1和*pointer2改为a和b就可以正常输出了,我想知道是用*pointer1指向为什么不行,谢谢。
你在这里定义的变量 int pointer1,pointer2; 这两个变量都是整形变量,不是指针,因此编译器告诉你类型不正确 修改为:int *pointer1,*pointer2; 就可以了
答:循环的部分这样改 while ((a[i]=getch())!=13) { if (a[i] == 8) { if (i > 0) { ...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>