精华内容
下载资源
问答
  • Void get(char * p[ ],int n) { for(int i=0;i;i++) { cin>>p[i]; } } 总是有问题,怎么处理,求大神求解
  • 题目要求:对十个不等长的字符串排序,要求用指针数组处理。 我的代码: ``` #include #include int main() { char a[10],*pointer=&a[0]; void order(char *pointer); int i; printf("请输入10个字符...
  • //输入N个字符串 char * str[N]; int i; for(i=0;i;i++) { printf("输入第%d个字符串\n",i+1); gets(str[i]); } for(i=0;i;i++) { printf("\n第%d个字符串:",i+1); puts(str[i]); } }
  • 如题,今天刚把指针这章学完,做课后的习题,输入3个字符串,由小到大排列。我自己想了下,决定用指针数组,然后输入3个字符串来做,,但发现不知道怎么输入,总是报错,求大神指导!
  • #include #include void main() { void input(char *name[],int n);...想补充一个search函数进行输入查找,但是不知道该怎么写,尝试写了几个但都查找失败,请各位大神指导下吧,拜托了,万分感谢!
  • 写一个程序输入一个国家的国家名,输出该国的首都名。 **提示信息:"请输入国家名:" **输出格式要求:"%s的首都为%s!" "你输入的国家%s没有找到它的首都!" ``` #include #include int main() { ...
  • ```#include //结构体 struct student { int iNum; char cName[16];... float fChineseScore;...//输入 ... printf("请输入学生的成绩信息:\n");... &MyClass[i]....求大神帮我看看这程序哪错了,怎么改,感激不尽
  • 1 #include<stdio.h> 2 3 int num[]={1,3,5,45,67,18,64,82,34,62}; 4 5 int *pnum;...//该函数可以实现输入一个数组且输出一个数组的功能 8 9 void main() 10 { 11 char i=0...
     1 #include<stdio.h>
     2 
     3 int num[]={1,3,5,45,67,18,64,82,34,62};
     4 
     5 int *pnum;
     6 
     7 int *Fun(int *num);//该函数可以实现输入一个数组且输出一个数组的功能
     8 
     9 void main()
    10 {
    11     char i=0;
    12 //num=Fun(num);//这样写是错误的,因为num是一个指针常量,不能被赋值
    13     pnum=Fun(num);
    14     for(i=0;i<10;i++)
    15     {
    16     printf("%d\n",*(pnum+i));
    17     }
    18 }
    19 
    20 int* Fun(int *num)
    21 {
    22 char i=0;
    23 for(i=0;i<10;i++)
    24 {
    25 *(num+i)+=1;
    26 }
    27 
    28 return num;
    29 }

     说到底就是一句话:用指针返回这个数组的首地址。

    转载于:https://www.cnblogs.com/wan0807/p/4709105.html

    展开全文
  • #include<stdio.h> int main() { int i; char* name[5]; for(i=0;i<5;i++) { scanf("%s",&name[i]); } for(i=0;i<5;i++) { printf("%s",name[i]);...新手求帮忙T T
  • 最近在学数组指针,老师让我们输入一串字符串并使其反向储存,我编写了如下代码但是报错了,请问我应该怎么做,我错在哪? ``` #include void zhuan(char *a,int b) { char m[b]; int n=0; while(b>=0) { ...
  • 数组可以作为函数的输入参数,这个很简单,例如:void fun(int a[],int i); 上述函数原型中第一个输入参数就是一个int a[],是一个整型的数组。...我们知道数组在内存中也是有地址的,数组也是有指针的...

    数组可以作为函数的输入参数,这个很简单,例如:void fun(int a[],int i);

    上述函数原型中第一个输入参数就是一个int a[],是一个整型的数组。那么一个函数能不能返回一个数组,怎么返回一个数组呢?

     

    比如,我们在一个函数InsertData里面要向一个输入的空数组a[]中插入变量,然后将其返回,怎么办呢?

    我们知道数组在内存中也是有地址的,数组也是有指针的。我们可否不直接返回数组,而间接地返回指向该数组的指针呢?

    假如一个数组是int型的数组,指向他的指针就是一个指向int型的指针常量,该指针就是数组的名称,其是指向数组中的第一个元素的。

    那么要返回一个int型的数组我们就只需返回一个指向int型变量的指针即可。例如,我们要通过InsertData返回一个整型数组,我们的函数原型就可以像这样来写:

    int *InsertData(int a[]);

    我们在VC6.0的环境下进行了实验,代码如下:

    #include<stdio.h>
    
    int *InsertData(int a[]);
    
    int num[10];
    
    void main(void)
    {
    	unsigned char i=0;
        int *b=InsertData(num);
    	for(i=0;i<10;i++)
    	{
    	printf("%d\n",b[i]);
    	}
    
    }
    
    int *InsertData(int a[])
    {
    	unsigned char i=0;
    	for(i=0;i<10;i++)
    	{
    	a[i]=i*10;
    	}
        return a;
    }
    

    从上述代码中我们可以看到我们输入的是一个整型数组,输出的是一个指向整型变量的指针,从函数体中“return a;”我们可以看出来,该指针是指向我们需要输出函数的首地址的,数组名就是一个指向数组首地址的指针。如此以来,我们就将带输出的数组的首地址返回了出来。然后我们在main函数中再定义了一个指向整型变量的指针b用于接收函数InsertData输出的数组的首地址。在int *b=InsertData(num);运行结束之后,b中存放的就是数组的首地址。然后我们就可以通过b来访问数组元素了。如:printf("%d\n",b[i]);这是一种访问方式,将b就看成一个数组。//当然为什么可以这样写,我还不知道,只知道这样写结果是正确的

     

    另外我们还可以这样写printf("%d\n",*(b+i));这样写我们就好理解了,因为b里面存放的是输出数组的首地址,指向的是数组中的第一个元素,即*b就是数组中的第一个元素,而*(b+i) (0<=i<=9)则指向的是数组中的第i个元素。这样我们也可以访问数组中的所有元素。

     

    最后我们还补充一点:我们之前说过,数组名就是指向数组的指针,那么指向数组的指针变量和数组名有没有什么区别呢?

    eg.:int a[10],*b;

    b=a;

    void main()

    {

    unsigned char i=0;

    for(i=0;i<10;i++)

    {

    *b++=i;

    }

    }

    上述代码的意思很容易理解,我们定义一个整型的数组,然后定义一个指向整型变量的指针变量,然后第二行代码中我们将数组的首地址赋给指针b。接下来在主函数中我们通过一个for循环来给数组元素赋值。

     

    那么不禁要问,我直接这样写可不可以:*a++=i;?

    结果是不行,为什么呢?这就是指向数组的指针变量和数组名之间的区别。我们说过,数组名是一个指针,指向数组首地址,也是数组的第一个元素。然而当一个数组定义后,数组名都是指向该地址,而不能被修改,也就是说数组名是一个指针常量,而前者是一个指针变量,

    类似于数组名是 int *(const a),而前者是int *b;

    这样就不难理解为什么不能写*a++=i了,因为常量是不允许写入或者修改的。

     

     

    另外在这里我还解释一个疑惑,到底*b++的时候是将b+1呢?还是该怎么理解?

    查阅相关资料,我们得知:假如有一个指针b,那么指针的每一个+1或者-1,并非指针值的+1或者-1,而是加上或者减去该指针所指向的那个变量数据类型的长度,即他所指向的存储单元所占用的字节数。亦即b++,b就会指向下一个元素, b++(或++b)的结果等同于:b = b+sizeof(int),而 b--(或--b)的结果是 b = b-sizeof(int)

     

    最后我还说明一点,这是关于我们在本篇最前面说的数组作为函数输入参数的问题,同样跟输出一个数组一样,我们除了直接输入一个数组,也可以输入指向该数组的指针。那么函数InsertData原型也可以这样写:

    int *InsertData(int *a);

    转载于:https://www.cnblogs.com/wan0807/p/4791841.html

    展开全文
  • 还是结构体里面不能这样使用指针字符数组? #include #include struct student{ int id; //长度:4 char* name; //8 int score[2]; //8 float avgScore; //4 }; void input(struct student*); void output...
  • 但是这个涉及到主函数和检查回文函数都有数组下标,请问,主函数和被调用函数都可以用指针运算替换数组下标吗?怎么做? 另外,被调用函数还需要计算判断条件(n/2-1),这个怎么指针表示呢 #include// 检查输入的...
  • C/C++怎么输入n创建n*n数组

    千次阅读 2018-08-22 16:56:42
    C/C++怎么输入n创建n*n维数组。在C/C++中创建6*6数组int a[6][6]。 但是很多时候要根据输入或给定的数N来设置大小可变的数组a[n][n]。而int a[n][n] 是非法的。 创建a[n][n]数组方法如下: 1.声明一个二级指针**a...

    C/C++怎么输入n创建n*n维数组。在C/C++中创建6*6数组int a[6][6]。

    但是很多时候要根据输入或给定的数N来设置大小可变的数组a[n][n]。而int a[n][n] 是非法的。

    创建a[n][n]数组方法如下:

    1.声明一个二级指针**a,并为它分配n*sizeof(int)空间。这样就相当于创建了n行,a[n][]。

    2.为二级指针a[i]分配n*sizeof(int)空间,用来存放列。这样就生成了a[n][n]数组。

    代码如下:

    1. #include<stdio.h>
    2. #include<iostream>
    3. using namespace std;
    4. int main()
    5. {
    6.     int N;
    7.     cin>>N;
    8.     int **a=(int **)malloc(N*sizeof(int));//创建一个2维指针并分配N*int长度的空间
    9.     if(a==NULL)//分配空间错误
    10.         return 0;
    11.     for(int i=0;i<N;i++)
    12.     {
    13.       a[i]=(int*)malloc(N*sizeof(int));//位第i行分配N个整型地址
    14.       if(a[i]==NULL)  //如果申请失败释放之前申请成功的空间
    15.       { 
    16.         while(--i>0)
    17.             free(a[i]);
    18.         free(a);
    19.         return 0;
    20.       }
    21.     }
    22.     for(int i=0 ;i<N;i++)
    23.     {
    24.            for(int j=0;j<N;j++)
    25.         {
    26.           a[i][j]=1;
    27.         }
    28.     }
    29.     for(int i=0 ;i<N;i++)
    30.     {
    31.            for(int j=0;j<N;j++)
    32.         {
    33.           cout<<a[i][j]<<"  ";
    34.         }
    35.         cout<<endl;
    36.     }
    37.     system("pause");
    38.     return 0;
    39. }

    生成6*6数组:

     

     

    展开全文
  • sizeof不是函数,是一种单目运算符号,所以使用起来...着重看3.4.2的指针部分,遇到了这个,如果函数的输入变量为指针类型,改怎么获取该指针数组的长度? https://www.cnblogs.com/MasterOogway/p/5774896.html ...

    sizeof不是函数,是一种运算符,所以使用起来不用包含库。

     

    strlen获取指针指向的数组长度:

    sizeof() 和 strlen()的区别,在此不做赘述,详见这位博主的内容:https://www.cnblogs.com/MasterOogway/p/5774896.html

    着重看3.4.2的指针部分,遇到了这个。如果函数的输入变量为指针类型,该怎么获取该指针指向的数组的长度?

    展开全文
  • ## 7-24 交换最小值和最大值 本题要求编写程序,先将输入的一系列整数中的...我想请教各位咕噜我想法那里不对,遇到这种题怎么解决?寻找一个数组中最大与最小的是不是要这么麻烦?算法有更简便的请务必告知,谢了~
  • 请问,主函数和被调用函数都可以用指针运算替换数组下标吗?怎么做? #include<stdio.h>// 检查输入的句子是不是回文 #include #define LEN 100 int compare(const char str[],int n); int main(void) { char ch...
  • 多维数组4.1 声明4.2 初始化二维数组4.3 访问二维数组元素4.4 二维数组元素遍历4.5 二维数组输入4.6 简化4.7 多维数组5 `const`数组5.1 `const`数组是什么?5.2 `const`数组怎么用?6 变量指针 vs 数组指针7 项目 1...
  • 将函数中函数声明,函数解释,函数使用部分用指针表示,即当形参,和实参都是数组名的时候,怎么指针表示 如,用函数来求两组学生的成绩平均数 #include<stdio.h> int main() { float aver(float a[],int n...
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目功能:输出二维数组任一行任一列值描述:一个 3 行 4 列的数组输入要显示数组元素...
  • //怀疑是在构造函数中申明动态数组指针,并且在赋值完后没保存 private: }; #endif [b]//main.cpp[/b][color=#FF0000][/color] #include<iostream> using std::cout; using std::endl; #...
  • 【问题描述】:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分, 所有的偶数位于位于数组的后半部分。【解决方法】:首先我们将这个问题简化,不考虑相对位置,只要...
  • 以上代码,build之后能够生成excel.tlh等的文件,就可以使用一些智能指针,本人实现了运用这个智能指针计算输入数组元素个数的简单的函数,如: double __stdcall RowsCount(Excel::RangePtr &pRange) { int rows =...
  • 建立一个对象数组,内放五个学生的数据(学号、成绩)。设立一个函数max,使用对象指针作为函数参数,在max函数中找出5个学生成绩最高者,并输出其学号。要求采用多文件结构实现。 ``` //student.h class ...
  • //用realloc 怎么扩充之前的数组同时又 i=0;不覆盖之前的数组? j=0; while (i) { while (a[i]!='\0'&&b[j]!='\0') { if(a[i][j]) { i++; } else if(a[i]>b[j]) { a[i++]=b[j++]; } else { i++; ...
  • 写在前面: 需要注意的是理解解耦这种思想,注重逻辑框架的搭建...特殊测试:空指针输入数组只包含一个数字 #include&lt;iostream&gt; #include&lt;string.h&gt; using namespace std; boo...
  • 输入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2 输出:16 解题思路 自己的第一反应是用“滑动窗口”的解法,但是没想清楚怎么弄,还是欠火候啊。。。 滑动窗口(O(n)+O(1)O(n) + O(1)O(n)+O(1),推荐!): 不断右移...
  • 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 首先定义一个函数,函数的功能就是将数组的奇数全部放在前面,偶数全部放在后面...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 题目分析: 1.最直接的想法...
  • // 用于接收的功能 创建一个扫描仪 用户键盘输入 while (true) { System.out.println("请您录入您要上传的用户头像的路径 "); //接收用户上传的路径 String path = scc.nextLine(); //2.判断该路径的后缀...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 163
精华内容 65
关键字:

怎么输入指针数组