‘壹’ c语言函数变量传递值修改!
直接传入B的指针就行了
比如
intmain()
{
intvalue(intc);
inta;
intb;
a=1;
b=2;
value(&b);
}
intvalue(int*c)
{
*c=119;//这时b的值也修改成了119
}
‘贰’ 我要改变全局变量的值 C语言
对于全局变量,如果在函数中修改了值,则全局变量的值就会被改变,在其他函数中访问的就是修改后的值;
但是,如果在函数中定义了跟全局变量名称一样的局部变量,则函数中修改的是局部变量,全局变量的值是无法被修改的。
‘叁’ 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语言如何通过函数来改变已经赋初值的全局变量的值
#include
#include
int
value
(int*
c)//c为形参,通过传递实参的地址&b,改变实参的值
{
*c
=
119;
/*怎么样把传递的b变量值修改成自己想要的值?
比如主函数int
main
里面的变量b改成119;
主函数调用b就变成了119*/
}
int
main(){
int
value
(int
*
c);
int
a;
int
b;
a=1;
b=2;
value
(&b);
printf("%d\n",b);
//system("pause");
return
0;
}
‘陆’ 怎样在C语言中修改字符串的一个字符的值
根据字符串存储的变量的不同,方法不同,参考代码:
存储在char数组中(支持C/C++)
char
str[]="hello"
;
int
i;
for(
i=0;str[i];i++
)
printf("%c\n",
str[i]
);
//以数组方式引用一个字符:str[i]
for(
i=0;*(str+i);i++
)
printf("%c\n",
*(str+i)
);
//以指针方式引用一个字符:*(str+i)
存储在string中(仅支持C++)
string
str="abcde";
for(string::iterator
iter
=
s.begin();
iter!=s.end();
iter++)
//使用迭代器
{
cout<<*iter<<endl;
}
cout<<endl;
for(
int
i=0;i<s.length();i++
)
{
cout<<s[i]<<endl;
//使用数组方式调用,得到单个元素
}
‘柒’ C语言中修改变量的表达式
c中不支持这种操作。
变量是保存数据的地方,当我们需要在程序里保存数据时,比如下面的例子中要记录用户输入的价格,就需要一个变量来保存它.用一个变量保存了数据,它才能参加到后面的计算中。一个表达式是一系列运算符合算子的组合,用来计算一个值。
‘捌’ C语言中如何改变全局变量的值
将 char A[100]={"glad to see you"};
改为 strcpy(A, "glad to see you");
同时,在文件开头包含
#include<string.h>