使用指针增加变量
发布时间:2020-12-16 10:27:06 所属栏目:百科 来源:网络整理
导读:我对处理指针很新,而且我的C知识相当小.我想了解指针.我编写了以下代码来打印变量列表(a到f),如下所示: 012345 我编写了以下代码来执行此操作: #include stdio.hint main(){ int a,b,c,d,e,f; int *p; int i; a = b = c = d = f = 0; p = a; for (i = 0; i
我对处理指针很新,而且我的C知识相当小.我想了解指针.我编写了以下代码来打印变量列表(a到f),如下所示:
0 1 2 3 4 5 我编写了以下代码来执行此操作: #include <stdio.h> int main(){ int a,b,c,d,e,f; int *p; int i; a = b = c = d = f = 0; p = &a; for (i = 0; i < 5; i++){ *p += i; printf("%dn",*p); p++; } return 0; } 这个想法是它通过变量和增量逐个增加数量(i).我假设你在同时初始化变量时,它们会在内存中彼此相邻.但是,我得到以下输出: 0 1 2 3 -1218283607 如果我将for循环更改为仅从0到3(i <4),它工作正常,打印机0 1 2和3.但是当我希望打印变量f时,它似乎没有设置它. 正如我所说,我对指针很新,所以我可能忽略了一些愚蠢的东西,但我一直在仔细研究我的代码,试图解决它. 提前致谢. 解决方法
无法保证a,e和f在内存中相邻.如果您需要这种保证,则需要使用数组.
#include <stdio.h> int main() { int a[6]; int *p; int i; a[0] = a[1] = a[2] = a[3] = a[4] = a[5] = 0; p = &a[0]; for (i = 0; i < 6; i++){ *p += i; p++; } for(i = 0; i < 6; i++) { printf("%dn",a[i]); } return 0; } 这里int [6]声明一个名为a的数组,它可以容纳六个整数.这六个整数可以通过[0],[1],[2],[3],[4]和[5]得到.保证a [0],a [1],a [2],a [3],a [4]和[5]在内存中连续排列.这样就行了 p = &a[0]; 将p设置为第一个元素的地址.此指针的每个增量都会向前移动数组中的一个位置. 第二个for循环显示第一个for循环在{0,1,2,3,4,5}中正确地为i设置了[i]到i.如果你运行这个程序,你会看到 0 1 2 3 4 5 在控制台上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |