c语言 程序 怎么赋值的过程 解释一下

c语言 程序 怎么赋值的过程 解释一下,第1张

不懂可追问

#include<stdioh>

void sub1(char a,char b) // 交换的只是实参,跟形参的值毫无关系,因此两个值不改变

{

char c;c=a;a=b;b=c;

}

void sub2(char a,char b) // b是以值传递进来的,因此改变形参b不会改变实参b的值,因此,b不变,a是传地址,改变了其值为b,因此最终a和b的值相同

{

char c;c=a;a=b;b=c;

}

void sub3(char a,char b) // 交换两个地址的值,因此可以让两个值交换

{

char c;c=a;a=b;b=c;

}

void main()

{

char a,b;

a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);

a='A';b='B';sub2(&a,b);putchar(a);putchar(b);

a='A';b='B';sub1(a,b);putchar(a);putchar(b);

}

1、初始化时进行赋值

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

char str[20] = "hello world";

2、逐个赋值

int a[4];

a[0] = 1,a[1]=2, a[2] = 3, a[4]=4;

等同于。

for (int inx=0; inx!=4; ++inx) a[inx]=inx+1;

3、通过函数复制数据以实现赋值

比如下面的代码,通过memcpy函数来实现数据的复制,以实现数组赋值的功能。

   #include <stdioh>

#include <stdlibh>

#include <stringh>

int main()

{

int inx;

int a[10] = {1,2,3,4,5,6,7,8,9,10};

int b[5];

//复制4个元素,b[4]将是随机值

memcpy(b, a, 4  sizeof(int));

for (inx=0; inx!=5; ++inx) printf("%d\t", b[inx]);

printf("\n");

memcpy(b, a+4, 5  sizeof(int));

for (inx=0; inx!=5; ++inx) printf("%d\t", b[inx]);

printf("\n");

return 0;

}

#include<iostream>

using namespace std;

class  A

{

public:

A(){}

A(int a):aa(a){}

A(const A &a)

{

aa =aaa;

}

private:

int aa;

};

void main()

{

A  a[100],b(3);

    a[50]=b;

}

C语言 形式逻辑不成立(C语言的缺点!)。

int a[ 10] ,p=a; 是声明,声明中 p=a 表示p是指针,初始化把a数组的首地址赋给它。

p=a;是语句,不是声明,形式一样,就不行了!

因为 语句 里,p 表示p 指向的 值。

同样的形式,意思不同,形式逻辑不成立,(C语言的缺点!)。

初学者,人人遇到这个问题!

vfp 不需要进行数据类型的定义。

例如:A=4,它默认的A就是数值型。B="4",它就是字符型。

给A B C三个字母赋,直接写即可:

A=4

B=5

C=6

如果想在屏幕输入A B C的值

请用 input命令

例如:input "请输入A的值" to A

用位运算,先与后或

例如 a=a&0xffffff00 这样其低两字节会清零

然后 a=a|0x000000ef 这样其低两字节会置ef,要赋其他值相应改动即可

甚至 不一定是整字节的改变,可以改变任意的若干位,只要设计好与,或得值即可

以上就是关于c语言 程序 怎么赋值的过程 解释一下全部的内容,包括:c语言 程序 怎么赋值的过程 解释一下、C语言一维数组赋值方法、c++定义一百个对象,为其中一个赋值程序怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10146823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存