c语言指针数组的输入
1. c语言指针输入
#include<stdio.h>
int main()
{
int a,b,c,s[3],t;
int *x,*y,*z;//定义指针变量
x=&a;//将a的地址赋给指针x,下同
y=&b;
z=&c;
scanf("%d%d%d",x,y,z);
s[0]=*x;//将指针x所指向的变量值赋给数组s的第一个元素;依次类推
s[1]=*y;
s[2]=*z;
for(int i=0;i<3;i++)//冒泡排序
for(int j=0;j<3-i-1;j++)
if(s[j]<s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
for(int i=0;i<3;i++)
printf("%d ",s[i]);
return 0;
}
2. c语言中将字符串用指针数组输入输出..
首先确定是字符指针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针。
若是指向字符数组的指针,则很简单,使用scanf("%s",
str);函数获取输入的字符串,然后使用字符串拷贝函数strcpy(stc,
dest);将获取的字符串拷贝到指定地址的字符指针数组中,拷贝过程中注意检查访问数组是否越界,若越界,则需要在字符数组的最后一个元素赋值为结束符'\0'。
若是赋值
字符指针数组,那么就是对数组中的某一个元素指向的字符数组进行拷贝赋值,其过程与前者相同。
3. C语言字符指针怎么输入谢谢
可以参考下面的代码:
#include <stdio.h>
#include <string.h> // 要用尖括号
intmain()
{
char*str;
str = (char*)malloc(sizeof(char) * 20); // 申请20个char长度的空间
scanf("%s", str); //输入
printf("%s ", str); // 输出
free(str); // 释放空间
return0;
}
(3)c语言指针数组的输入扩展阅读:
字符指针注意事项:
在字符指针中p是指针变量指向字符串首元素(前提对p指针没有进行指针操作),p中存放首元素的地址(一旦被初始化就,系统就为我们分配好了地址,而且地址也不能改变,因为字符指针是一个只读变量,不能企图对一个初始化好的指针进行内部修改)
而*p是对指针变量p进行解引用操作,也就是指针所指向的内容,而&p是对指针变量取地址,所以也就肯定不会和p的值相等,因为字符指针系统会为其分配内存,p的值是字符串首元素的地址。
4. C语言程序设计:设计利用指针与下标分别实现数组元素的输入与输出的所有可能方法
假设一个一维数组a
a[0]表示第一个数
用指针就是*a
同理a[1]和*(a+1)一个意思
表示就这么表示 用的话等同
5. c语言 指针输入
看来楼主没有理解指针必须要初始化这一定律啊。
char
*str;
str="l
love
china";
指针
str
是指向字符的,也就是指向了一个地址
赋值为str="l
love
china"
这里指针str的值也就是字符串
"l
love
china"
的首地址
而输出的时候puts(str);
puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止
而下面这个
char
*str;
scanf("%s",str);
指针没有初始化,所以是不对滴。
其实在c语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题
6. C语言输入字符型指针数组怎么输
*p[10],具有10个字符指针的数组,先要存在具体地址,否则是野指针,发生错误
#include "stdio.h"
#include "stdlib.h"
main()
{
char *p[10],*temp;
int i,j,k;
for(i=0;i<10;i++)
{
p[i]=(char*)malloc(sizeof(char)*50);//开辟内存
}
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p[i]);
}
for(i=0;i<10;i++)
{
printf("%s\n",p[i]);
}
}
7. C语言编程:用指针表示法给一维数组元素输入值,输出各元素的值及元素之和
#include <stdio.h>
int main()
{
int a[6],i,sum,*p;
printf("Please input data of a[6]: ");
for(i=0,p=a;i<6;++i)
scanf("%d",p++);
printf("Output arry: ");
for(i=0,sum=0,p=a;i<6;++i)
{
printf("%d ",*p);
sum+=*p++;
}
printf(" s=%d ",sum);
return 0;
}
8. C语言如何输入一个数组
1、输入数组需要使用指针获取地址后,就能对得到的数组就行操作了。首先打开DEV C++软件,新建一个空白的C语言文件:
9. C语言函数用指针输入数组元素,对吗
如下提示供参考:
int ddata[20]是 scanfArr函数内部定义的,是局部变量,上面 arr = ddata,导致scanf输入的数组元素会保存到 局部变量 数组中,并无意义。
从问题描述,提供以下代码供参考:
#include<stdio.h>
voidscanfArr(int*arr,intn)
{
inti;
printf("请输入5个数(以回车键结束): ");
for(i=0;i<n;i++,arr++)
scanf("%d",arr);
}
voidmain()
{
inti,ddata[5];
scanfArr(ddata,5);
printf("输入的数组如下: ");
for(i=0;i<5;i++)
{
printf("[%d]:%d ",i,ddata[i]);
}
}
运行截图:
10. c语言指针数组的输入
要使用指针就必须让指针指向有效的地址。
你在程序中char *str[5];处声明了5个指针,但是这些指针并没有指向有效的地址,所以它们是非法的,不能直接使用,否则就会出现非法访问的错误。
你可以像下边这样做:
#include <stdio.h>
main()
{
char str[5][80];
int i;
for(i=0;i<5;i++)
gets(str[i]);
for(i=0;i<5;i++)
puts(str[i]);
return 0;
}