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

c语言赋初值

发布时间: 2022-01-25 14:00:27

c语言中变量初始化与赋初值有什么不同

语法上的初始化是指对象定义时,对应的分配空间之后对于值的操作。C语言中,静态和全局变量默认置0,有初始化列表的复制初始化列表的值到空间(如有不足,剩余部分置0),局部自动变量可以不初始化(调试器参与时可能被隐式地初始化为其它的值("debug magic number"),例如默认情况下Microsoft C/C++ Debugger会把栈中未初始化的字节置为0xCC)。
赋初值一般而言是指逻辑意义上的初始化。在C语言中,由于初始化的语法是“=”后加初值,所以“赋初值”基本上就是指语法上的初始化。不过随着语言的发展,“赋初值”的意义发生了扩大。对有构造语义但又允许不初始化而不产生编译错误的程序设计语言而言,两者有些微妙的差别。例如C++的构造函数中,用若干个成员名和括号括起来的初始化值构成的初始化列表是语法上的初始化(也可能是逻辑意义上的初始化,如果没有被构造函数体内的值覆盖),而构造函数体中对成员的赋值语句是逻辑上的初始化但不是语法上的初始化。
冰的悸动 错误:
1.“程序开始时进行初始化”的说法仅仅适用于静态或全局变量,而不适于局部自动变量。局部自动变量在函数调用时才能被初始化。
2.“但是根据编译器的不同有些编译器会自动赋初值0或其他”——这在ISO/IEC C语言标准中不是由实现定义的行为,如果一个编译器符合标准,那么行为就是明确的,即视此初始化的对象是否为全局对象来判断隐式初始化置0还是不进行初始化——从下面的函数定义来看这里应该var2是全局变量,会被置0。非标准编译器则另当别论(但是我还没见过会在这点上没事找茬的)。

❷ c语言中定义什么必须赋初值

任何变量在取值使用前都必须先赋值。

❸ 什么是c语言里面的赋初值

通俗点???
例如:
你买了一支笔,当你买到手的时候,商家已经给这根笔加了一根蓝色的笔芯。
笔就是变量;
笔芯就是商家给笔赋的初值。
另:赋值
当你不想用蓝色想用黑色时,
根据笔规格(变量类型)找到适合的黑色笔芯就可以了。
不用另外再买一支笔。

❹ c语言中如何给数组定义并赋初值

字符串数组定义赋值:

char c[6]={'c', ' h ', 'i', 'n', 'a' , '' }

整数数组定义赋值:

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

int a[5];

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

a[i]=i;

定义float数组并赋值:

float b[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,0.0}

(4)c语言赋初值扩展阅读:

数组:是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。

声明固定大小的数组:

有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围:

1,建立公用数组,在模块的声明段用 Public语句声明数组。

2,建立模块级数组,在模块的声明段用 Private语句声明数组。

3,建立局部数组,在过程中用 Private语句声明数组。

参考资料来源:网络-数组

❺ C语言指针赋初值问题

int
*p1=0,*p2=0,*p3=0;这里赋的是地址,指针都指向地址为0的空间就是空指针,没有实体存在,所以后便全错了。
#include

#include

void
main()
{
int
*p1=(int
*)malloc(sizeof(int)),*p2=(int
*)malloc(sizeof(int)),*p3=(int
*)malloc(sizeof(int)),*c;
*p1=0;
*p2=0;
*p3=0;
printf("请输入任意三个整数(中间以空格隔开:)");
scanf("%d
%d
%d",p1,p2,p3);
if(*p1>*p2)
{c=p1;p1=p2;p2=c;}
if(*p2>*p3)
{c=p2;p2=p3;p3=c;}
if(*p1>*p2)
{c=p1;p1=p2;p2=c;}
printf("%d,%d,%d\n",*p1,*p2,*p3);
}
一楼说的是对的,回答问题是并行的,早知道他答了,我就不回答了,还有你的数值交换还存在很大的问题。你自己看看吧。

❻ C语言中怎么给数组赋初值

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

数组定义时可以直接赋值初始化。

如果在定义之后,要么通过循环语句一个一个赋值,要么使用内存操作函数统一初始化。

❼ C语言 能正确对字符串赋值、赋初值的语句组是

B正确
A)字符串应以'\0'结尾,应改为:char s[ ]={'a','e','i','o','u','\0'};

C)这样赋值编译器会默认在结尾处加'\0',由于指定s只能放5个字符,所以good!后若加'\0'会导致数组越界,应改为:char s[6] = “good!”此时字符串中的值为'g' 'o' 'o' 'd' '\0'
D)char s[5]后面是分号代表语句结束,s = "good"是下一语句的开始,字符串无法以该方式赋值,应改为s[0] = 'g'; s[1] = 'o'; s[2] = 'o'; s[3] = 'd'; s[4] = '\0';

❽ c语言,赋初值问题

因为你没有赋初值,所有系统对这种局部变量会初始一个随机值。

❾ C语言,变量赋初值的两种方式有什么不同

对于程序效果,没有不同
对于编译和执行, 有点点个区别
第一句在a申明时就被赋值
第二句如果没有编译器优化的话, 会涉及多次访问内存