首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
数组名,数组首地址,数组指针的区别
2024-11-04
C语言——数组名、取数组首地址的区别(一)
目录: 1. 开篇 2. 论数组名array.&array的区别 3. array.&array的区别表现在什么地方 4. 讨论 5. 参考 1.开篇 很多博客和贴吧都有讨论这个话题,各有自己的表述方式,今天在他们的基础上我将继续试着以我自己理解的方式总结一下,欢迎大家的审阅和指评. 2.论数组名array.&array的区别——省政府和市政府的区别 例如: int array[5] = {0}; 总所周知,其中的&array是整个数组array的首地址,array是数组首
C-基础:数组名与取地址符&
指出下面代码的输出,并解释为什么.(不错,对地址掌握的深入挖潜) main() { ]={,,,,}; ); printf(),*(ptr-)); } 输出:2,5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5,&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int),所以,int *ptr=(int *)(&a+1);ptr实际是&(a[5]),也就是a+5 原因如下: &a是数组指针,其类型为
按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
int[]x=new int [50]; char[][]y=new char[10][10]; int j=1,w=0; for(int i=0;i<50;i++) { x[i]=j; j+=2; } System.out.println("以下是一维数组的元素:"); for(int q=0;q<5;q++) { for(int m=0;m<10;m++) { for(int n=w;n<50;n++) { System.out.print(x[w]+&qu
编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
package liu0915; import java.util.Random; public class Test0915sz { public static void main(String[] args) { int[] x=new int[50]; int j=1; for(int i=0;i<50;i++) { x[i]=j; j=j+2; } System.out.println("一维数组是:"); int n=0; for (int a=1;a<=5;a+
16.按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
//分类 package com.bao; public class Shuchu { int[]yi=new int[50]; String[][]er=new String[10][10]; void shuchu() { for (int i=0;i<50;i++) { System.out.print(yi[i]); if((i+1)%10==0&&i!=0) { System.out.println(""); } } for(int j=0;j<1
c++中变量、变量名、变量地址、指针、引用等含义
首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5...... 房间里面一定要住人,新人住进去了,原来的人就走了:不管你住不住,里面都有人. 编号就是地址.里面的人就是内容,为了我们(人)记着方便,我们给他们起些名字,如张三.李四.于是, 变量,就是一个房间,它有编号(地址),他有名字(变量名),他有内容(里面的人). int a = 3; // a 是名字,3 是内容,地址可以假设是0x 12345678 (通常就是32位地址). // 0x12345678 这个房间里面
C语言 数组名不是首地址指针
今天上计算机系统课的时候老师讲到了C中的聚合类型的数据结构.在解释数组名的时候说"数组名是一个指针,指向该数组的第一个元素",附上ppt(第二行): 我觉得这是不正确的,是一个常见的由"简化"产生的错误,数组名 != 指针.数组名是一个标识符,它标识出我们之前申请的一连串内存空间,而且这个空间内的元素类型是相同的--即数组名代表的是一个内存块及这个内存块中的元素类型 .只是在大多数情况下数组名会"退化"(C标准使用的decay和converted
C语言的数组名和对数组名取地址
http://blog.csdn.net/zdcsky123/article/details/6517811 相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址.现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义了. 下面我们来逐步分析,下面是一段验证这个问题的代码 #include <stdio.h> ]={,,,,
C语言 数组名不是指针
今天上计算机系统课的时候老师讲到了C中的聚合类型的数据结构.在解释数组名的时候说"数组名是一个指针,指向该数组的第一个元素",附上ppt(第二行): 我觉得这是不正确的,是一个常见的由"简化"产生的错误,数组名 != 指针.数组名是一个标识符,它标识出我们之前申请的一连串内存空间,而且这个空间内的元素类型是相同的--即数组名代表的是一个内存块及这个内存块中的元素类型 .只是在大多数情况下数组名会"退化"(C标准使用的decay和converted
C语言中对数组名取地址
在C/C++中,数组名相当于一个指针,指向数组的首地址.这里“相当于”不代表等于,数组名和指针还是有很多区别的,这个在<C陷阱与缺陷>里有详尽的讲述.而这里要说的是对于数组名取地址的这么一个操作. 如果声明有如下数组: int arr[5]; 那么,&arr这个操作得到了什么值呢? 如果简单的认为arr就是一个指向数组首地址的指针的话,那么很自然会想到&arr得到的是一个指向存放arr这个指针的指针,也就是一个二级指针,然而事实却并不是这样. 观察以下代码: int arr[5
C/C++数组名与指针区别深入探索(转载)
转载自: C/C++数组名与指针区别深入探索 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用.于是乎,很多程序设计者就被搞糊涂了.而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针".很幸运,我的大学老师就是其中之一.时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解. 想必这种误解的根源在于国内某著名的C程序设计教程.如果
C/C++——C语言数组名与指针
版权声明:原创文章,转载请注明出处. 1. 一维数组名与指针 对于一维数组来说,数组名就是指向该数组首地址的指针,对于: ]; array就是该数组的首地址,如果我们想定义一个指向该数组的指针,我们可以用如下定义: int *p; 然后令: p = array; 那么指针p就指向了数组array的首地址,此时我们可以向操作array一样操作p: #include <stdio.h> int main(){ ]= {,,,,,,,,,}; int *p = array; ;i<;i++){
C/C++数组名与指针的区别详解
1.数组名不是指针我们看下面的示例: #include <iostream> int main() { ]; char *pStr = str; cout << sizeof(str) << endl; cout << sizeof(pStr) << endl; ; } 输出结果:104由输出结果可知,数组名并不是指针. 2.数组名神似指针上例我们证明了数组名不是指针,但第5行,char *pStr = str; 程序将数组名直接赋给指针,这显得
数组名和指针的深入理解(C++)
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用.于是乎,很多程序设计者就被搞糊涂了.魔幻数组名请看程序(本文程序在WIN32平台下编译): #include <iostream> using namespace std; int main() { char str[10]; char* pStr = str; cout << "sizeof(str): \t" << sizeof(str) <<
c/c++数组名和指针区别深入探索
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用.于是乎,很多程序设计者就被搞糊涂了.而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针".很幸运,我的大学老师就是其中之一.时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解. 想必这种误解的根源在于国内某著名的C程序设计教程.如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,
数组名和数组名取地址&
在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址. 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“. 在以下两种场合下,数组名并不是用指针常量来表示, 就是当数组名作为sizeof操作符和 单目操作符&的操作数时. sizeof返回整个数组的长度,而不是指向数组的指针的长度. 取一个数组名的地址所产生的是一个指向数组的指针,而不是一个指向某个指针常量的指针.所以&
CPP-基础:C/C++数组名与指针的区别
2005-08-23 08:36 来源:天极网 作者:宋宝华 责任编辑:方舟·yesky 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用.于是乎,很多程序设计者就被搞糊涂了.而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针".很幸运,我的大学老师就是其中之一.时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解. 想必这种误
【转】C语言中数组名和指针的区别
注:本文转自http://www.cnblogs.com/furaibo/archive/2010/03/19/1689710.html 魔幻数组名 请看程序(本文程序在WIN32平台下编译): #include <iostream> int main() { ]; char *pStr = str; cout << sizeof(str) << endl; cout << sizeof(pStr) << endl; ; } 1.数组名不是指针
C和指针 第六章 数组名与指针
指针的算术运算符是指针和数组之间的一种关联,但不是唯一关联: 可以使用数组名作为指向数组第一个元素的指针,但是不可以给数组名赋新的值. //如下声明a int a[10]; //用a作为指向数组第一个元素的指针,可以修改a[0]; *a = 11; //通过a + 1来访问a[1]; *(a + 1) = 22; 但是试图使数组名指向其他地方是错误的: #include <stdio.h> int main() { char arr[] = "yangxunwu"; whi
sizeof(数组名)和sizeof(指针)
在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为()A.4 B.10 C.40 D.8 我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间. 因此写段代码测试一下: #include<iostream> using namespace std; void fun(int P[])//P这里作为指针使用 { c
热门专题
putty保存的配置文件
jquery内容改变事件 bind
git 添加两个远程库
中标麒麟安装wps2019
verilog case语句 多种情况合并
ip和掩码计算cidr
openlayers搭建环境
j2ee解决组件开发
jvm 控制新生代大小减少对象进入老年代
网卡做bond1,主网卡down,up后网络不通
creator 动态加载的图片需不需要释放
matlab怎么生成exe为撒谎不能运行
java死锁和活锁 面试
分水岭阈值分割处理彩色图像matlab
es6 proxy数组 转换
mysql根据逗号一行变多个字段 group
base64转图片 9j
ruby CSV文件读取
pycharm调用ffmpeg
myecplise 项目打叉