printarray是什么意思(C语言 指针)

您所在的位置:网站首页 c语言中ul是什么意思 printarray是什么意思(C语言 指针)

printarray是什么意思(C语言 指针)

2023-04-21 06:48| 来源: 网络整理| 查看: 265

本文目录C语言 指针C语言新手问题之用指针来将数组传递给函数.求大神帮忙解释下这个程序什么意思,怎么理解,详细点嘚,越详细越好,谢过public static void printArray(int[] array) 有什么用java 数组java中:什么意思C语言新手问题.JAVA递归问题java中,printArray()是怎么用的啊C语言新手问题.C语言 指针

printarray_1(ptr++)的意思是将ptr所指向的值:1,2,3,4传给printarray_1(),然后让ptr自加一,即让ptr指向5,6,7,8。第一次循环就要ptr++的原因,是当第二次调用的时候ptr传给printarray()的值为:5,6,7,8。这其实是 x++ 的一个应用实例,在实际应用中可以灵活采用x++或者++x可以让程序简洁但是程序的可读性可能会降低。

C语言新手问题之用指针来将数组传递给函数.

int (*ptr) ptr是一个指针,他指向的类型是一个长为4的数组,数组的类型是int简单的说,ptr是一个指向int的指针43行是把上面说的那种类型转成int*类型如果你要问为什么可以这么转,那其实C语言怎么转都行,只要程序员自己知道自己在做什么。。这里的话,因为ptr是指向int的第一个元素的地址,也就是一个int数据的地址,那当然可以转成int*,从逻辑上讲也是没问题的~

求大神帮忙解释下这个程序什么意思,怎么理解,详细点嘚,越详细越好,谢过

#include#define N 4 void PrintArray(int x); printf(“\n“); } return; } ///这是一个输出二维数组的一个函数,通过i和j的循环,把所有数组中的数显示出来void Invert(int x) { int i,j; for(i=0; i《N; i++); for(j=0; jj){ int t=x=t; } ///这是将纵的值与横的相同 return; } ///void main() { int a={{1,3,5,7},{5,6,7,8},{9,10,11,12},{13,14,15,16}};///设定一个二维数组 PrintArray(a);//输出这个二维数组 Invert(a); ///通过转换函数使横纵的坐标相对于对角线对称PrintArray(a);///再输出交换后的二维数组 }如原来的1, 3, 5, 7 转换成 1, 3, 5,7 5, 6, 7, 8 3, 6, 7, 8 9,10,11,12 5, 7,11,12 13,14,15,16 7, 8,12,16

public static void printArray(int[] array) 有什么用

区别大了去了public static void printArray(int array)只是个普通的静态方法public static void main(String args)可是程序的入口方法

java 数组

对与你的这个程序算法也没什么复杂的。我也就不用解释了。关于你提出的问题我说一下:1. 修改array2时array1当然要发生变化了。之所以你对这个有疑问,是你对java中的数据类型还没理解。在java中有两中数据类型,值类型和引用类型。像一些基本的数据类型如:int ,float,double,byte等都是值类型,而String,还有‘类’都是引用类型,其中数组也是引用类型。array2=array1; 这句话就是把array1的首地址赋值给array2,此时array1和array2所指向的是同一块类存单元。array2对这块内存的修改也会反映在array1上了。同样的道理,当向一个函数传值时,如果函数的形参是一个值类型的数据,则在传参数时把实参的内容拷贝一份放到形参里面,之后形参在函数相当于一个局部变量,它在函数中做的一切动作都不会影响到实参的内容。而如果函数的形参是一个引用类型,当向它传值时,就是把实参的地址传给形参,而不是把它的内容传给形参。这时候形参有了实际参数的内存地址,那么在函数中形参的改变也会反应到实际参数中来,你可以做下列实验://test1.javaclass test1{ public static void main(String args) { int b={9,8,7,6,5,4,3,2,1,0}; int c=10; test2.amend(b); test2.print(b);//输出:0 1 2 3 4 5 6 7 8 9说明b的值被改了。 System.out.println(““); //换行 test2.amend1(c); System.out.println(c); //输出:10 说明c的值并没有被改为20 }}class test2{ public static void amend(int a) //引用传递 { for(int i=0;i《a.length;i++) a=i; } public static void print(int a) { for(int i=0;i《a.length;i++) System.out.print(a+“ “); } public static void amend1(int a) { a=20; }}引用就相当于c语言里面的指针,不知道你学过c语言没有。如果学过,就应该很容易理解的。java中没有指针的概念,在java中是不允许直接操作变量的内存地址的。int a=10;int b=a; //这里仅仅是把a的值,也就是10拷贝一份再赋给变量b。a和b在内存上是没有任何联系的。如果Student是一个类,那么:Student stu1=new Student(); //学生1Student stu2=stu1; //把学生1的引用赋给学生2这时候stu2的操作就会反映到stu1上。参考下面的例子:class test1{ public static void main(String args) { Student stu1=new Student(“张三“,18); //建立一个学生变量,并且初始化为“张三“ ,18岁 Student stu2=stu1; //把学生stu1的引用赋给学生stu2 stu1.print(); //输出:名字:张三 年龄:18 stu2.print(); //输出:名字:张三 年龄:18 //把学生stu2的名字改成“李四“ 20岁 stu2.name=“李四“; stu2.age=20;

stu1.print(); //输出名字:李四 年龄:20 stu2.print(); //输出名字:李四 年龄:20 }}class Student{ String name; //学生的名字 int age; //学生的年龄 Student(String name,int age) { this.name=name; //给名字赋值 this.age=age; //给年龄赋值 } void print() //输出学生的名字和年龄 { System.out.println(“名字:“+name+“ 年龄:“+age); }}//可以看到,我改了stu2的名字和年龄,但是stu1学生的名字和年龄也改了。这就是引用的效果。2.第二个问题:This method has a constructor name这句话的意思说,“这个方法有一个构造函数名字“为什么会出现这样的提示呢?是因为你定义的类的名字是:printArray,而这个类默认有一个构造函数它的名字是和类名相同的。而且构造函数是没有返回值的。而你在类里面有定义了一个public 的静态的成员方法。它的名字和你的构造函数的名字是一样的。如果你把static void 都去掉的话,也就是说变成这种形式:public printArray(int array){}那么这时系统就会把它当作是类的构造函数了,但是你这里函数的形式是:public static void printArray(int array){}因为有返回值所以,系统把它当作是类的成员函数了,但是它又是与构造函数的名字相同的,所以就出现了你上面的警告了。虽然没有报错,但还是希望类的成员函数不要与类的名字相同,以免带来不必要的麻烦。我的回答也只有这些了,相信你对java里面的数据类型也有了一个了解了吧,如果还有不懂的话,上百度去吧。。

java中:什么意思

这是jdk1.5新增的for each for (int i : array) { System.out.print(i + “ “); }相当于 for (int j=0;j《array.length;j++) { System.out.print(ayyay + “ “); }

C语言新手问题.

一,第6行,int (*ptr) 是什么意思?这相当于是定义了一个指向长度为4的整形数组的起始地址的指针。二,第43行是什么意思? 这是一个指针赋值,(int *)是一个强制转换。

JAVA递归问题

先回答你的return问题,当你的if语句i==0的时候,返回出来而不去执行下面的语句。当if(i==0)不成立的成立的时候去执行下面语句。else语句,是先执行 printArray(i-1); 在跳出判断,执行下面的语句。回答的有限,因为偶的JAVA也学不怎么好!

java中,printArray()是怎么用的啊

嗨 你好在网上了解到,希望对你有所帮助import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.Date;import java.util.Scanner;public class P1 { public static void main(String args) { String array = readFromConsole(); for (String s : array) {// 简单打印输入的数据 System.out.println(s); } try { String array2 = readFromText(“D:/abc.txt“); for (String s : array2) {// 简单打印输入的数据 System.out.println(s); } } catch (IOException e) { e.printStackTrace(); } } /** * 键盘输入字符串,存入数组 * * @return */ public static String readFromConsole() { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); String content = ““; // 随机分隔符 String sepator = (new Date()).getTime() + “-“ + java.util.UUID.randomUUID().toString(); // 当输入#EXIT#按换行键就结束输入字符串 while (!str.equals(“#EXIT#“)) { content += str + sepator; str = scanner.nextLine(); } return content.split(sepator); } /** * 从文件读入所有行,存入数组 * * @param file * @return * @throws IOException */ public static String readFromText(String file) throws IOException { BufferedReader br = new BufferedReader(new FileReader(file)); // 随机分隔符 String sepator = (new Date()).getTime() + “-“ + java.util.UUID.randomUUID().toString(); String content = ““; String line = br.readLine(); while (line != null) { content += line + sepator; line = br.readLine(); } return content.split(sepator); }}祝你学习愉快

C语言新手问题.

一,第6行,int (*ptr) 是什么意思?这相当于是定义了一个指向长度为4的整形数组的起始地址的指针。二,第43行是什么意思? 这是一个指针赋值,(int *)是一个强制转换。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3