C语言:用指针来输入数据.

作者&投稿:房晶 (若有异议请与网页底部的电邮联系)
c语言 用指针实现一组数据的数据输入与输出~

#include
main()
{
int a[6],i;
int *p;//p没有定义怎么能够使用呢?p为指针
for(i=0;i<6;i++)//for之后怎么是{ },应是();还有没有等于,否则会指针越界
scanf("%d",&a[i]);//此处丢了一个&(求地址)
p=a;
/*
for(i=0;i<=6;i++)此处与下面的语句没有联系,按照你的写法,会输出7次a[0];
*/
for(i=0;i<6;p++,i++)
printf("%3d",*p);//居然丢了一个*,太粗心
printf("
");
}

修改版已经在上面,你自己好好看一下吧!不懂可以问我!

#include "stdio.h"#include "stdlib.h"int main(){ char *string=(char *)malloc(sizeof(char)*100); scanf_s("%s",string,100); printf("%s
",string) ; return 0;}

p是指针,因为开始定义的时候 *p=arr,就是表示p指向数组arr的首地址
scanf("%d",p); 于是就表示arr地址输入当前值。
等效于 scanf("%d",arr)
如果你开始没有把p指向某个地址,那肯定会出错的

楼上的朋友都说的非常清楚了,我简单说,假设
int a;
scanf("%d",&a);

“&”其实就是取地址符,平时我们一般用到的“&a”就是变量a再内存中存放的地址,“指针”、“地址”、“引用”都是同一个概念,那你就可以理解,p=指针,&a=地址,p=&a

scanf就是要变量的地址,这里的p就是代表arr[0]、arr[1]...arr[9]它们的地址。

不是将输入的数据存储在P里,而是存储在P指向的地址里。
这里的P就是数据存储的地址。

int *p
scanf("%d",p); p实际是个地址
你经常会看到:
int *p,a;
p=&a;
scanf("%d",p);
这样就理解了吧,实际相当与scanf("%d",&a);


c语言用指针一维数组:输入10成绩,统计10个成绩中不及格的成绩,要求:1...
include<stdio.h> int main(){ int i,n=0,a[10];for(i=0; i<10; i++){ scanf("%d",&a[i]);if(a[i]<60)n++;} printf("不及格的有%d人\\n",n);for(i=0; i<10; i++){ printf("%d\\t",a[i]);if(i%5==4)printf("\\n");} return 0;} ...

高级语言程序设计用指针方法编程,输入x和y两个整数,按先大后小的顺序...
include <stdio.h>int main (void) { printf("请输入 x \\n"); scanf("%d", &x); printf("请输入 y \\n"); scanf("%d", &y); printf("你输入的两个数是:"); if(x > y) { printf("%d, %d\\n", x, y); } else { printf("%d, %d\\n", x...

C语言实验六实验报告——指针
6.能够使用指针进行程序设计。三、实验内容有关指针的程序设计1.编程实现:任意输入的10个数,求其平均值。要求:(1)10个数采用scanf语句读入。(2)利用指针实现对这10个数的访问。(3)要求平均值的精度为小数后面2位。 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入...

C语言 将这个代码用指针实现,对学生信息的输入和显示 求大神改进_百度...
printf("c语言成绩:\\t");scanf("%d",&p->score.clanguage);printf("英语成绩:\\t");scanf("%d",&p->score.english);printf("高数成绩:\\t");scanf("%d",&p->score.math);p++; \/\/指针 要指向下一个 } } void output(){ printf("\\n %d的学生信息:\\n===\\n",LEN);printf("姓...

【C语言小白】求问如何用指针输入一组二维数组如a[3][4],就是在输入...
include<stdio.h> #include<malloc.h> #define N 4 \/\/定义一个4列的二维数组,每一行的存储空间需要动态申请int main(){int *a[3]; \/\/声明3行的二维数组,现在是指针数组int i,j;for(i=0;i<3;i++){a[i]=(int *)malloc(N*sizeof(int));for(j=0;j<N;j++){scanf("%d",&a...

C语言,用指针指向一个地址,从这个地址开始输入数据,超过五个出错_百度...
char *p=&a;\/\/p指向的是a的首地址。当你++后,便指向它的下个地址,这样是不安全的,也就是说非法的指向了不属于你的内存(因为你p只拥有a这个内存)。前面5个数对,只是意外。你要输入多个字符都是正常的,那必须给p分配足够的内存空间。比如讲a定义成数组,或者malloc内存。

三道C语言题目,求大神(用指针的方法)。
(1)include "stdio.h"int main(int argv,char *argc[]){int n,i,k;printf("Input n(n must be a natural number less than 10000)): ");if(scanf("%d",&n)!=1 || n<1 || n>9999){printf("%d is out of range of valid values.\\n",n);return 0;}k=0; for(i=1;i<...

C语言中,自定义一个含有5个元素的数组,使用指针输入元素的值,实现正序...
include<stdio.h> define N 5 void main() { int a[N],i,*p;p=a; for ( i=0;i<N;i++,p++ ) scanf("%d",p);p=a; for ( i=0;i<N;i++,p++ ) printf("%d ",*p); printf("\\n");p--; for ( i=0;i<N;i++,p-- ) printf("%d ",*p); printf("\\n");} ...

C语言利用指针编写函数,输入3个学生2门课成绩,计算每个学生的平均分和...
给你一个简单的程序。 希望能看的懂。include "stdafx.h"include "stdio.h"int main(int argc, char* argv[]){ int a,b,c;printf("a学生成绩是:");int a1,a2;scanf("%f,%f",&a1, &a2);printf ("b学生成绩是:");int b1,b2;scanf ("%d,%d",&b1,&b2);int c1,c2;printf("...

用c语言,调用函数指针,输入十个数,求最大和最小值
"最小值=%d\\n",min);}int main(){int a[N],i;void (*pf)(int*,int);\/\/声明函数指针for(i=0;i<N;i++)scanf("%d",&a[i]);pf=func;\/\/函数指针指向函数首地址pf(a,N);\/\/使用函数指针调用函数return 0;}示例运行结果:1 3 5 7 9 2 4 6 8 10 最大值=10 最小值=1 ...

双清区13646641729: c语言 用指针实现一组数据的数据输入与输出 -
纪璧三协: #include<stdio.h> main() {int a[6],i,*p;for(i=0;i<6;i++) //括号() 数组元素下标0-5 表示六个元素scanf("%d",&a[i]); //加&,这里需要一个指针变量p=a;for(i=0;i<6;i++) //同上printf("%3d",*(p+i) ); //引用指针数据加*,想通过指针访问每个数组元素,需要变化指针地址printf("\n"); }

双清区13646641729: c语言 用指针方法处理 输入10个整数,将其中最大的数与第一个数交换, -
纪璧三协: #include<stdio.h> #define N 10 void input(int number[]) { int i,*p; for ( i=0,p=number;i<N;i++,p++ ) scanf("%d",p); } void swap(int *p1,int *p2) { int k; k=(*p1);(*p1)=(*p2);(*p2)=k; } void max_min(int array[]) { int *pmax,*pmin,i,*p; max=min=p=array; ...

双清区13646641729: 如何用c语言结构体指针输入一组学生成绩,查找最好成绩,并输出其学生信息 -
纪璧三协: 有两种方法 1:用链表做 2:用文件做 用链表做主要在于结构体的构造 和相关数据的输入 查找 用文件做 主要在于对文件的读写 操作 你可以参考相关的c语言书籍 比如老谭的c语言

双清区13646641729: c语言直接用字符指针输入字符串 -
纪璧三协: 第二种情况指针p和q都是野指针,只想内存位置不定,修改为char *p=(char *)malloc(sizeof(char)*100);char *q=(char *)malloc(sizeof(char)*100);gets(p);gets(q);

双清区13646641729: C语言用指针输入一串字符,并逆向输出. -
纪璧三协: #include <stdio.h> void main(void) { unsigned char i = 0, j, temp1[200], temp2[200]; /*设定变量*/ printf("\n\n\n Please Input yuan_wenzi: "); /*提示输入*/ scanf("%s", temp1); /*输入字符串到TEMP1*/ while(temp1[i] != '\0') {temp2[i] = temp1...

双清区13646641729: C语言:用指针实现数组元素的值的输入,并用指针实现倒序输出. 59734 43795
纪璧三协: #include #define N 6 //输入的元素个数 int main() { int i,t[100],*a=NULL; a=t; for(i=0;i<N;i++){ scanf("%d",a++); } for(i=0;i<N;i++){ printf("%d ",*(--a)); } getch(); return 0; }

双清区13646641729: C语言编程:输入一整数,求各位数之和,积,用指针操作 -
纪璧三协: #include "stdio.h" void main() { int m,a[10],x=0,i,*p,sum=0,count=1; printf("输入元素\n"); scanf("%d",&m); printf("倒序\n"); while(m) { a[x++]=m%10; m/=10; } p=a; for(i=0;i<x;i++) { sum+=*p; count*=*p; p++; } printf("和为:%d,积为:%d",sum,count); }

双清区13646641729: C语言,用指针指向一个地址,从这个地址开始输入数据,超过五个出错 -
纪璧三协: char *p=&a;//p指向的是a的首地址.当你++后,便指向它的下个地址,这样是不安全的,也就是说非法的指向了不属于你的内存(因为你p只拥有a这个内存).前面5个数对,只是意外.你要输入多个字符都是正常的,那必须给p分配足够的内存空间.比如讲a定义成数组,或者malloc内存.

双清区13646641729: c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数. -
纪璧三协: #include<stdio.h> void main() { int a=0,b=0,c=0,d=0,e=0,i=0; char *p,s[20]; while((s[i]=getchar())!='\n')i++; p=s; while(*p!=10) { if(*p>='A'&&*p<='Z') a++; else if(*p>='a'&&*p<='z') b++; else if(*p==' ') c++; else if(*p>='0'&&*p<='9') d++; else e++; p++; } ...

双清区13646641729: c语言中指针怎么使用? -
纪璧三协: 1、指针指向变量:下面有这样一个代码块:int main() {int a=10;int b=15;test(a,b);printf("a=%d,b=%d\n",a,b);} void test(int x,int y) {int tmp;tmp=x;x=y;y=tmp;} 最后输出的结果还是a=10,b=15.因为在函数调用时,实参和形参之间只是值传递....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网