当前位置:首页 » 编程语言 » c语言数组不带下标赋值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数组不带下标赋值

发布时间: 2023-01-15 05:12:18

c语言,数组定义时,可以这样写arr[ ] ,不写下标,可以么为什么

只有在直接初始化的时候,可以。
比如 arr[] = {1, 2, 3};
没有初始化时就不可以。
大概就是要知道数组的大小,如果直接就初始化了,那也等于知道数组大小。
更根本的原因就是,语言和编译器的编写者这么设定,并在里面这么实现的。他们喜欢这种方式。

㈡ C语言怎样给字符数组赋值

1、单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值。

例子:

char a[10];

char ch='a';

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

a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值

char *p;

for( p=a; p<a+10; p++ )

*p=ch++; //通过指针对数组相应元素赋

2、字符串赋值,可使用string.h头文件中的字符串操作函数进行赋值。

例子:

char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

(2)c语言数组不带下标赋值扩展阅读:

C语言给字符数组赋值的优点:

1、简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2、运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

㈢ c语言数组赋值问题

我不清楚你想问什么,不过第二种写法是对的。
char chars[11];//是定义了一个初始值为空总数为11的字符数组。
char s[] = "c language";//定义一个总数为11的字符数组,但是有初值。注意是11个不是10个,用这种方定义的字符数组末尾会加一个\0。
数组的赋值通常是使用花括号来表示的,但是字符数组比较特殊,它可以使用字符串来赋值,当然你也可以使用通用的方式,用花括号来赋值,如{'c', ' ', 'l', 'a'.....}。

㈣ C语言定义一维数组时数组的下标可以省略吧

定义数组形式如下:

1.

inta[5];

如果为全局变量,默认为0,否则值随机。

2.

inta[5]={1,2,3,4,5};

定义长度与元素值。

如果定义的值的数量少于5个,未定义的值初始化为0;

如果多于5个,报错。

3.

inta[]={1,2,3};

定义数组的值,长度为空,表示自动分配一个长度为后面元素个数的数组。

4.

chars[]="adasda";

仅char型数组支持字符串赋值。


注:多维数组只有最高维可以默认。

inta[][2]={{1,2},{3,4}};

但是不能定义

inta[][]={{1,2},{3,4}};

㈤ C语言数组下标

下标可以是变量 也可以是常量。直接说a[0],a[1],a[2],a[3]这样的下标就是常量。
对于访问来说, 不在意是变量还是常量, 系统只是需要一个值, 作为偏移量
不管是变量还是常量, 访问的时候 肯定是一个特定值, 而系统要的 无非是这样一个偏移量而已。

㈥ c语言里面数组赋值时可以给部分元素赋值不是下标越界了吗

书上说得很清楚了啊
int a[3]={xx, xx, xx}; 不关心大括号中赋值的内容, 定义后, 如果用a[3]就越界了, 因为你只定义了3个元素, 分别是a[0], a[1], a[2], 没有a[3]的.

㈦ c语言定义数组时可以不写下标也不初始化赋值么(如:int a[];)

不可以。

但作为一个函数参数时,则可以:
void foo(int bar[])
{}

此时的bar,编译器并不会把它当成数组,而会把它当成指针。

㈧ C语言字符串二维数组引用可以省略列下标吗

代码语法上是没有问题的。
(1)c语言的二维数组的每一行都可以看成一个一维数组,如书上的name就可以看成5个一维数组组成的。如果数组恰好定义成char类型,那这些一维数组又可以看成字符串。
(2)代码一开始就是用strcpy函数对这5个字符串赋值。每行的大小只有10个字节,因此它还要检测输入是否越界。老师应该说过,c字符串的结尾要有个结束符0,所以这里的检测直觉上是有问题的,>10改成>=10更好一些。
(3)访问这些一维数组最直接的方法就是书上的做法。name[i]的意思就是第i行的起始地址。在vs编译器上还允许
char *p = name[i];
char (*p)[10] = &name[i];
char (*p)[10] = (char (*)[10])name[i];
可能有些编译器不完全支持

㈨ C语言中怎么给数组某个元素赋值

没有赋值的元素的值都是初始值,写一个循环判断没有赋值的下标,再赋值就可以了!
#include <stdio.h>
void main()
{
int b,c[5]={0,1,2};
for(b = 0;b < 5;b ++){
if(c[b]==0){
c[b]=1;
break;
}
}
printf("%d",c[b]);
}
而且,数组是不能先定义再给它赋值的!

㈩ c语言数组没写下标会发生什么

函数不回了指向了局部数组的指针,局部数组已经过了生命周期被销毁,返回的指针成了野指针,这是错误的。