变量的作用域和scanf

来源:互联网 发布:淘宝首页海报全屏代码 编辑:程序博客网 时间:2024/06/04 00:45

#include <stdio.h>


//变量的作用域:变量的作用范围


int test()

{

int value =10;//value变量的作用范围是从定义的行开始,直到所在的函数结束的这段区域

return0;

}


int main()

{

test();

//printf("value = %d\n", value); //错误,企图使用未声明的变量value,但是value变量并没有在main函数所在的内存中,所以报错


/*

int value = 10;

   value = 20; */

//printf("main, value = %d\n", value);


//块作用域:在其中定义的变量,作用范围仅限在这一对{}之间,出了{}之后,就无法访问了,是因为这个变量所占据的内存空间已经被回收了。

//存在的原因就是为了节约内存,提高性能

{

int value =15;

printf("{}, value = %d\n", value);

}


//printf("::, value = %d\n", value); //error,试图访问函数内的块作用域{}内的value


return0;//使得函数终止,结束了

}

#include <stdio.h>


int main()

{

int a;

printf("请输入任意一个整型值:\n");

scanf("%d", &a);//&称为取地址运算符,用来取出某个变量所在的内存地址编号

//打印变量的地址使用的格式符是%p或者%x


//打印变量在内存中的地址

//变量的地址是其所占据的内存空间中的低地址所在的那个字节的地址 (假如a变量类型是int,那么就要占据4个字节的地址空间,占据的四个字节的地址假如说分别是:0xff01 0xff02 0xff03 0xff04,那么a变量的地址一定是其中最低那个字节的地址,也就是0xff01)

printf("a变量在内存中的地址是:%p\n", &a);

printf("a变量所在内存中的值是:%i\n", a);


int b;

printf("请输入任意两个整型值:\n");

scanf("%d%d", &a, &b);//当需要接收连续的多个变量的值时,分隔符可以随意,比如#,*,在接收输入的值时,必须以该字符作为分隔多个输入的字符;如果没有指定分隔符,那么在接收输入时,需要用空格,制表符,换行符作为分隔多个输入的字符

printf("a = %d\n", a);

printf("b = %d\n", b);


return0;

}

1,提示用户输入一个秒数,计算出是多少分钟,多少秒?

#include <stdio.h>


int main()

{

printf("请输入一个大于等于0的秒数:\n");

int seconds;

scanf("%d", &seconds);


int min = seconds /60;

int sec = seconds %60;


printf("%d = %d%d\n", seconds, min, sec);


return0;

}




2,用两种方法实现交换两个变量的值.

#include <stdio.h>


int main()

{

int a =3, b =4, tmp;

printf("before swap, a = %d, b = %d\n", a, b);

/*

//方法1:利用了第三个变量来交换两个变量的值

tmp = a;

a = b;

b = tmp;

*/


//方法2:不利用第三个变量来交换两个变量的值

a = a + b;

  b = a - b;

a = a - b;


printf("after swap, a = %d, b = %d\n", a, b);


return0;

}





0 0
原创粉丝点击