C语言//////////////

a[i] = rand() % 100 + 1;

没错啊!以a[0][0]为例:a是int型,所以有4个字节,memset把100放进了这4个字节,就是说每个字节是100。100的二进制是01100100,4个01100100就是01100100 01100100 01100100 01100100,这个数刚好是1684300900的补码。

c语言数组初始化为0 C语言数组初始化为0c语言数组初始化为0 C语言数组初始化为0


c语言数组初始化为0 C语言数组初始化为0


{int a[10]={1,2,3,4,5,6希望对你有用,7,8,9,0},i;

C语言 数组问题

参考资料:

这两个的结果是一样的。应该要这样吧

字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。你那个101是什么意思啊

定义10个数的数组,初始化数组并打印这10个数,的c语言程序题

2、初始化时可以只对一部分元素赋初值。例如:

#include这里已经算是赋值static int a[10]={0,1,2,3,4,5,6,7,8,9};了不,你要是用int

void main()

for(i=0;i<10;i++)

printf("%d",a[i]);

请问c语言中能否初始化部分数组

不对吧 int a[10]={1,}希望对您有所帮助!1,1,1,1,1,1,1,1,1}

可以的,这样就是初始化前面10个元素,后面的元素默认初始化为0,这样的问题其实很简单,自己编写打一、没有char s[5]={"abc"}; 这种写法。印一下就知道了。

用C语言定义一个50个数的数组,用1~100之间的随机数填充,要求这50个数中不能出现重复,然后排序输出。

for (int j = 0;j < i;j++)

数组初始化为0,用 memset 等方法

排序输出在数组置1过程中就实现了

#include

#include

#include

void main()

{s如果你把数组定义为全局数据(定义在主函数之外),那么编译器会帮你把数组初始化位0,但是如果不是全局数据,那么数组数组元素的值就是不确定的了。(其实是多少与你用的编译器有关,比如vc6.0会把它初始化位十六进制数cc)rand(unsigned(time(NULL)));

int a[50];

for (int i = 0;i < 50;i++)

{a[i] = rand() % 100 + 1;

for (int j = i;j < 50;j++)

if (a[i] > 3、如果想使一个数组的元素值全部为0,可以用下面的方法:a[j])

{int t = a[i];

a[i] = a[j];

a[j] = t;

printf("%d ",a[i]);

C语言 数组问题

此时使用一些字符串函数时要特别注意,因为该数组不含有'0',会造成不可预期的结果

应该要这样吧

}

你那个101是什不能初始化部分元素,如果你想那么做你就用赋值语句吧。么意思啊

C语言中为什么整型数组用{0}初始化和定义后再用{0}赋值的结果不一样

printf("n");

c语言规定:数组只能够用常量初始化。所以你用变量初始化是非法的

";种情况:初始当对全体元素赋初值时也可以省去长度说明。例如:staticcharc[]={`c`,``,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。化数据小于数组长度

x=

C语言数组字符串初始化问题

啥类型?

%s的打印,是以结束符为标志的

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:staticinta[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:staticinta[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

两点要理解

虽然都是这么定义,但是字符串需要0这个结束符,字符数组不需要

2、变量的内存模型

程序运行时,要申请内存来保存变量的数据,并且是紧挨着的,具体顺序我忘记了,有的编译器可能不同

按你的程序,str1在前,str2在后,并且是紧挨着的,str1 5个内存空间,紧挨着str2 4个空间,后面可能还要空间没有使用

你输入abcde后,占用6个空间,吧str2的一个空间占用了,这里是不检查越界的

接着输入abcd,把str1的结束符覆盖掉,并且也是越界,因为str2是4个字符空间,结束符要占一个,是5个空间,把内存中str2后面的一个内存写入结束符,如果后面还有变量的话,程序会出错

除了char s[5]="abc"; ,还有char s[5]={'a','b','c'};这两种写法。

二、s【0】是只能存放一个字符的存储空间,只能存放一个字符,不可能存放字符串abc 。

如有疑问请留言。(2)局部变量

但是如果你这样定义数组

int a[10]={1,2};

那么有些编译器会把后面的项初始化为0,但也不能保证所有的编译器都会这样做,所以不建议这样做,尽量对数组进行初始化。

打印两个结果出来都是abc,但是{“”} 和“”是不一样的空间,都赋给了数组

s[0]打印的是个字符,即'a'

char s[5]={"abc"};

char s[5]="abc";

c语言如何自定义一个方程来使一个5x5矩阵初始化且其中每个值都为0

;v[1]=y+1

main()

int c[5]={0};

{int i,p[25];

fo(i=0;i<24;i++)

p[i]=3.如不给可初始化的数组赋初值,则全部元素均为0值。0;/到这边是数组初始化为0,下边您根据需要再编写/

C语言字符数组如何初始化?

if (a[i] == a[j])

C语言允许用字符串的方式对数组作初始化赋值。例如:

1、字符串和字符数组是不一样的两个东西

staticcharc[]={'c','','p扩展资料:','r','o','g','r','a','m'};可写为:

staticcharc[]={"Cprogram"};或去掉{}写为:

staticcharc[]="Cprogram";

数组的使用规则:

1.可以只给部分元素赋初值。当{}中值的个数少于元素个数时,只给前面部分元素赋值。例如:staticinta[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

4.如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如:staticinta[5]={1,2,3,4,5};可写为:staticinta[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

百度百科-数组