
正文
c语言并集指针未到数组尾部,求并集c语言
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
...当我定义好一个指针后,可不可以将这个指针直接指向数组的末尾...
可以。指针可以指向任何地方,但指向后能不能写就是另外一回事了。比如: p=&a[9] 可以用*p=10写内存,但是 p=&a[9]+1 就不一定能用 *p=10来写该地址的内存了。
数组有多少项,就给这个指针加多少。如 int b[5];int *p;p=b;p+=5;这时p就指向了b[5]的未尾。
也因为如此对于源程序中,用一个指向变量的指针(意味着被指向的对象可以被修改)去指向字符串字面量,本身就是说不通的。
p-n); //访问结构数组对象a[0]中的变量n的值,也就是1 printf(%d,(p+1)n); //访问结构数组对象a[1]中的变量n的值,也就是3。因为指针p+1就指向了结构数结a的下一个位置,也就是a[1]处。
int *b=a;由于b是指针,无论是否指向a,指向什么,sizeof(b)等于sizeof(int),32位平台上等于4。以上讨论的问题引发的关于数组名称的问题:数组名本身是个地址常量,但是某些特殊情况下它的语义可以发生改变。
int* p;是定义了一个指向整数的指针,它只能指向整数或整数数组,不能指向其它类型的变量,故当你用来指向字符串时就会出错。
相关问答
Q1: 两个c语言数组指针问题!
1、printf(通过指针来获取首元素:%s\n,*p);另外,你可以发现,在输出 text 数组的时候,使用的是 *text,即通过数组名来获取首元素,而不是直接输出 text。
2、如有定义char y[4]= 321则表达式 *y+2的值是5 。分析:y是字符串数组首元素3的地址,*y的值就是字符3,再加上2,就是字符5(也可以说是字符5的ASC码值)。
3、int (*p)[3], p = a + 2 ()优先级先于[],因此p先是指针,是什么指针呢?由[]知道是一个指向数组的指针,因此他其实简单来说就是个指向长度为三的一维数组的指针。
4、p[0]是整数指针,类型是int *,和a的地址类型不匹配。C)p[0]=&a[1][2],正确 &a[1][2]是a数组中一个整数元素的地址,类型int * 和p[0]类型匹配。
5、对于int **p = a;p类型和a是不同的。p是指向一个指针(指向int类型的量)的指针,a则是指向一个一维数组(含2个int元素)的指针。
6、对于一个二维数组,a表示a[0]的首地址即&a[0],而a[0](把a[0]看作一个一维数组)表示a[0][0]的首地址即&a[0][0]。一句话,数组名代表数组第一个元素的地址。
Q2: 在C语言编程中如何判断一个整数数组的到了结尾,以及数组的长度?
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。在test.cpp文件中,输入C语言代码:printf(%d, sizeof(ARRAY) / sizeof(int));。编译器运行test.cpp文件,此时成功求出了数组的长度是4。
2、第一个输入为数组长度。 比如输入 3 12 45 87 2 以特定输入为结束标记, 比如 以0,-1或者EOF作为结束标记。或者整行输入,以换行符为结束标记。
3、如果是a[10]的就是:解释就是直接用sizeof检查数组a的内存大小(以字节为单位),减去1(因为数组是从0开始)就可以得到数组最后一个值。
4、在编程时是不可能不知道一个数组的长度的,数组在定义的时候必须指明其长度,否则编译不会通过。所以再想楼主是不是问这样一种情况啊:定义了一个固定长度的数组,但是并没有存满数据,然后想判断这个数组是不是结尾了。
5、C语言的数组类型没有专用的方法,不能直接判断长度。
Q3: C语言指针问题
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。
如有定义char y[4]= 321则表达式 *y+2的值是5 。分析:y是字符串数组首元素3的地址,*y的值就是字符3,再加上2,就是字符5(也可以说是字符5的ASC码值)。
首先,s是指针变量(重点:或者说变量s的类型是指针类型)。指针,说白了就是内存地址。所以,不管是指向何种类型的指针,指针应该(?)都是一样的。比如int * p; char *p; float *p; 这里的p都是指针变量。
概念问题:指针是指存放地址值的变量或常量;指针与一般变量或常量的区别,在于它不直接存储数值,而是存放被存储数值的地址,属于间接存放,所以不少初学者感觉学习困难。
/*从键盘输入两个数,定义两个指针变量分别指向两个数,应用指针变量计算两数的和和差,并输出。
一个指针是指向一个地址的,而*p就是他指向的那个地址也就是k的值 &k就是k这个值的地址。s=k这种情况下s最早是指向m的,你也就是给m赋值。
Q4: 如何让指针指向数组尾部
楼主,可以用指针解决,即让指针开始指向数组首地址,然后P++,直到遇到\0为止。
可以。指针可以指向任何地方,但指向后能不能写就是另外一回事了。比如:p=&a[9]可以用*p=10写内存,但是 p=&a[9]+1 就不一定能用 p=10来写该地址的内存了。
数组有多少项,就给这个指针加多少。如 int b[5];int *p;p=b;p+=5;这时p就指向了b[5]的未尾。
end — 将数组的内部指针指向最后一个单元 说明 end ( array &$array ) : mixed end() 将 array 的内部指针移动到最后一个单元并返回其值。参数 array 这个数组。 该数组是通过引用传递的,因为它会被这个函数修改。
可以这样理解么?你是想把指针从后往前,并打印相应信息。
比如:int a[10];定义一个int型指针:int *p=&a[0]; //一定要初始化,把数组a的地址赋给它。然后p++,即为a[1]。
关于c语言并集指针未到数组尾部和求并集c语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






