① c语言中怎么把一维数组初始化为全零啊,不用循环
下面3种方法:
1.int arr[10]={0};
如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。
2.int arr[31]={};
3.用memset函数在程序开始时初始化数组。比如:
int arr[1024];
memset(arr, 0, 1024); //清零
(1)c语言字符数组初始化为空扩展阅读:
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 ,它通常为新申请的内存做初始化工作。
② C语言 中怎么把一个数组置空
你好,可以用
#include "memory.h"
char a[20];
memset(a, 0, sizeof(a));
或者ZeroMemory(a, sizeof(a));
③ 在C语言中,各种数据的初始化值为空的代码是怎么写的
C语言并没有空值这个概念,一般习惯上,指针若是指向地址0便是空值,其他数据若内容是0便是空值。填充一蔽告樱大片内存区域可以宏丛使用memset函数,它的填充长度是按字节计。
整形:int a = 0;
字符型:char a = 0;
数组:
int a[20];
memset( a, 0, sizeof(int)*20 );
C字符串只需要把第一个字符设为'\0'即可。
当然也可以全部清成0。
char a[20] = "ashdfuih";
memset( a, 0, sizeof(char)*20 );
例如有一个结构体Some x,可以这样清零:
memset( &x, 0, sizeof(Some) );
如果是一个结构体的数组Some x[10],可以这样:
menset( x, 0, sizeof(Some)*10 );
任何一友码个指针都可以通过直接赋为0变成空指针:
Some* p = 0;
④ C语言求解char s[5]=""这种双引号里面啥都不写是什么意思
字符数组初始
char s[]={'a','b','c','d','e'};
s数组自动初始化为带五个个元素的数组桥氏
char s[]="abcde";
s为激消老带5个元素,共占6个字节(包括了字符结束符'\0')
char s[5]=""这种双引号里面啥都明升不写是初始化为空数组
⑤ C语言字符数组如何初始化
C语言允许用字符串的方式对数组作初始化赋值。例如:
static char c[]={'c',' ','p','r','o','g','r','a','m'}; 可写为:
static char c[]={"C program"}; 或去掉{}写为:
static char c[]="C program";
当对全体元素赋初值时也可以省去长度说明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。
(5)c语言字符数组初始化为空扩展阅读:
数组的使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
网络-数组
⑥ C语言中怎么把一维数组初始化都为0,
1、首先,需要定义数组,数组常用类型有int型,float浮点型,char字符型等,输入即可定义。
⑦ 求解 :C语言中 怎么把数组元素赋值为空字符谢谢
数组在程序运行的时候,会申请内存空间,要是不定义赋值的话,会是随机数
一般来说要是用,可以不用管,在利用的时候,避开就可以,如循环中,把条件设置在用不到这个地方就可以
要是在条件设置无法避开的话,可以初始化为一个你用不到的数据,如赋值为零,判断要是零的话跳过
⑧ 字符串数组的初始化方式
1、直接逐个初始桐简化字符数组:
字符局带裤数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
1
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' )。
2、用字符串常量来初始化字符数组:
在c语行盯言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。
1
char str[]={"I am happy"};
也可以省略花括号。
1
char str[]="I am happy";
但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。
1
2
char str[];
str="I am happy";//错误,字符数组的赋值只能按元素一一赋值
⑨ 在c语言中,在结构体中有个数组,里面有一定的字符,怎么把数组变为空,然后再输入呢
给结构里面写个clear函数,然后clear里面把数组值给设置成默认的值就好了。数组定义的时候,就已经分配内存了。在程序结束的时候,需要把内存释放掉,调用delete []就可以了。
⑩ c语言 怎么把一个二维数组初始化为空
初始化二维数组可以试试
charq[3][3]={{0}};
或者
#include<string.h>
memset(q,0,sizeof(q));
输出没有很好的方法,你可以封装一个函数。以后都用这个函数输出。
functionprintArray2(arr,row,col)
{
for(inti=0;i<=row;i++){
for(intj=0;j<=col;j++){
printf("%c",arr[i][j]);
}
printf(" ");
}
}