c语言-如何在C语言中以数组指针作为形参输出数组

问题描述

如何在C语言中以数组指针作为形参输出数组
#include ""stdafx.h""
void cmdsend(unsigned int * info);
int main()
{

unsigned int senddata[5];
senddata[0] = 8;
senddata[1] = 2;
senddata[2] = 0;
senddata[3] = 4;
senddata[4] = 5;
cmdsend( senddata );

while(1){;}

}

void cmdsend(unsigned int * info)
{
unsigned int k;
for (k = 0; ((*info) != '') && (info != NULL); *info++ k++)
printf(""senddata is %drn"" *info);
}
如上面程序所示,我想将数组sendata完整的输出,现在只能打印出8,2.即在sendata[2]处结束,好像判断为 info == NULL了,请问应该怎样修改,才能输出完整数组?在使用 *info 指针作为形参的前提下。

解决方案

上面的已经分析了原因,中间断断条件有问题,指针越界以后可能不会为null,这时你的判断条件不会终止,所以继续向下执行,导致不确定的后果,最好采用如下形式比较安全:
void cmdsend(unsigned int * info int len)
{
unsigned int k;
for (k = 0; k < len k++)
printf(""senddata is %drn"" *(info+k));
}
其中len代表数据的长度

解决方案二:
因为''的ASCII码就是 0 !!!!!!

解决方案三:
相互比较的时候会把''转化为ASCII码,也就是0,所以停在第二个了……

解决方案四:
senddata[2] 的值为0所以根据你的(*info) != ''的判断就会输出到senddata[2]就停止,如果想遇‘’则结尾的话,可以把senddata数组声明成char型。

时间: 2025-01-21 12:14:28

c语言-如何在C语言中以数组指针作为形参输出数组的相关文章

visual stu...-使用c++语言如何在visual studio 中编写可视化窗口程序

问题描述 使用c++语言如何在visual studio 中编写可视化窗口程序 使用c++语言如何在visual studio 中编写可视化窗口程序? 解决方案 就可以创建MFC 程序 剩下的就是代码实现功能的问题了 解决方案二: 最简单的已经使用MFC工程向导,你也可以手动写代码做Win32的基本程序结构. 解决方案三: 最简单的方法是用对话框当窗口用,在资源视图里可以创建对话框,代码里直接一句DialogBox()就行,对话框上可以直接托控件上去,非常方便.而且不用一些专门的软件,比如spy

图文详解c/c++中的多级指针与多维数组_C 语言

前言 首先先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知识:      1.实际上并不存在多维数组,所谓的多维数组本质上是用一维数组模拟的.      2.数组名是一个常量(意味着不允许对其进行赋值操作),其代表数组首元素的首地址.      3.数组与指针的关系是因为数组下标操作符[],比如,int a[3][2]相当于*(*(a+3)+2) .      4.指针是一种变量,也具有类型,其占用内存空间大小和系统有关,一般32位系统下,sizeof(指针变量)=4.      

如何在win7电脑中设置鼠标指针样式及速度?

  不管是XP系统还是现在的64位win7旗舰版下载中,咱们不难发现,鼠标的指针都是传统的一个三角形箭头的标志,千篇一律,从来不曾改变过,不过事实上,不论是鼠标指针样式还是速度,在64位win7旗舰版中都是可以改变的,只是不知道有多少的用户知道该如何来操作呢?如果你也还不知道应该怎么操作的话,下面,小编就为大家具体的演示一遍吧! 1.首先,咱们返回到64位win7旗舰版下载的桌面位置,然后在桌面随便找一个空白处,点击右键,选择个性化. 2.在打开的窗口中,咱们点击窗口左侧菜单中的更改鼠标指针选项

让你提前认识软件开发(20):如何在C语言里面执行SQL语句?

第1部分 重新认识C语言 如何在C语言里面执行SQL语句? [文章摘要]         在通信类软件中,程序经常需要与数据库打交道.为了实现诸如从数据库中获取数据.更新数据库表某字段.插入或删除某条数据等功能,就需要在C语言程序中构造一些SQL语句,并用函数来执行这些SQL语句.         本文介绍如何在C语言程序中构造并执行SQL语句,为相关软件开发工作的开展提供了参考. [关键词]          SQL语句  C语言  程序  流程  开发   一.为什么要在C语言程序中执行SQ

详解C++中的指针、数组指针与函数指针_C 语言

C++中一个重要的特性就是指针,指针不仅具有获得地址的能力,还具有操作地址的能力.指针可以用于数组.或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较严重的问题. 1.指针 程序中所有的变量和常量都存在一个内存地址中,当然,函数也有对应的内存地址,内存地址的不同会导致程序执行时有所不同. 指针就是用来控制和存储内存地址的变量,它指向单个对象的地址,除了void之外,指针的数据类型与所指向地址的变量数据类型保持一致. 2.如何定义指针.

简单分析C语言中指针数组与数组指针的区别_C 语言

首先来分别看一下,指针数组的一个小例子: #include <stdio.h> #include <string.h> int lookup_keyword(const char*key, const char* table[], const int size) { int ret = -1; int i = 0; for(i=0; i<size; i++) { if (strcmp(key, table[i]) == 0) { ret = i; break; } } ret

C语言 指针与二维数组详解_C 语言

二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0   1   2   3 4   5   6   7 8   9  10  11 但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存: C语言中的二维数组是按行排列的,也就是先存放 a[

C语言 数组指针详解及示例代码_C 语言

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素.在C语言中,我们将第 0 个元素的地址称为数组的首地址.以上面的数组为例,下图是 arr 的指向: 下面的例子演示了如何以指针的方

php each 返回数组中当前的键值对并将数组指针向前移动一步实例_php实例

each函数返回数组中当前的键/值对并将数组指针向前移动一步 基本语法 array each ( array &$array ) 在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元.如果要再用 each 遍历数组,必须使用 reset() . 参数介绍: 参数 描述 array 必需.规定要使用的数组. each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动. 返回值: 返回 array 数组中当前指