c语言中a[i]=0和a[i]=''有没有区别

Python024

c语言中a[i]=0和a[i]=''有没有区别,第1张

a[i]=0和a[i]='\0'是有区别的,也是有相同点的,下面分两种情况讨论如下:

1、数组a是数值型(以int为例)

int a[4]

a[0] = '\0'

a[1] = 0

printf("%d\n", a[0])  // 输出0

printf("%d\n", a[1])  // 输出0

上面的结果是相同的,即对于数值型数组,两者是一样的。

2、数组a是字符

a[i]=0表示将ASCII码值为0所对应的字符赋值给数组元素a[i];

a[i]='\0'表示将结束标志字符'\0'赋值给数组元素a[i],即去掉i+1后面的所有元素;

char a[]="abcd"

a[2] = '\0'

a[1] = 0

printf("%c\n", a[1])  // 输出为空,因为ASCII码值为0所对应的字符为NULL

printf("%s\n", a)     // 输出a,因为字符串到第3个字符就结束了而第二个被赋值为NULL(不可见),所以只输出字符a

c语言中&a[i]就是取数组元素a[i]的地址。

可以用在scanf("%d",&a[i])

或为同类型的指针赋值时:

p=&a[i] (当然,这也可以用p=a+i来实现)

++i是使用i之前先使i加一。i++是使用i之后再加一。如果不能理解,那么可以理解为:++i是先计算,再操作,i++是先操作,再计算。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

c语言的缺点:

1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

参考资料来源:百度百科-c语言