1.局部变量
是什么?首先是一个变量,其次,这个变量只是在程序的局部范围内有效;
局部变量定义在那些位置:
1. 函数的开头;
2. 函数内的复合语句内定义;
3. 形式参数;
4. 函数中间(非开头);
#include <stdio.h>
void main()
{
}
void fun1(char local_0) //形式参数:只在此函数有效;
{
char Local_1 = 'a'; //函数的开头:在本句以下的函数内有效;
{
char local_2 = 'b'; //函数的复合语句内定义:只能在本复合语句内切本行以下有效;
}
char Local_3 = 'c'; //函数中间(非开头):只能在本行以下有效;
}
注意:
1)程序执行到某个函数时,这个函数内部的局部变量将会被分配内存空间;局部变量在函数执行结束后,变量所占内存将会被释放;
全局变量
是什么?是变量,可以在全局范围内有意义的变量;所谓全局也并不是真正的全局,而是在定义处以下的范围内才是有效的;
全局变量定义的位置:
1. 文件开头;
2. 函数前;
3. 函数后;
4. 文件结尾;
举例:
#include <stdio.h>
char Global_1 = 'A'; //源文件开头:在此行以下的所有定义的函数都有效;
void main()
{
}
char Global_2='B'; //函数后和函数前:此全局变量在此行之前是无效,只能在此之下的函数中有效;
void fun1()
{
char Local_1 = 'a';
{
char local_2 = 'b';
}
char Local_3 = 'c';
}
char Global_3 = 'B';//程序结尾:程序结尾的全局变量是没有意义的;
2.几种特殊的函数
1,puts函数
puts(字符数组)
作用将一个字符串(以 “\n" 结束的字符序列)输到终端。
2.gets函数
gets(字符数组)
从终端输入一个字符串到字符数组,并得到一个函数值,是字符数组的起始地址
3.strcat函数
strcat(字符数组1,字符数组2)
作用连接两个字符数组中的字符串,把字符串2放在字符串1的后面,结果放在字符数组1中
4.strcpy函数
strcpy(字符数组1,字符数组2)
是”字符串复制函数“,将字符串2复制到字符数组1中,
字符数组1的定义必须足够大,应不小于字符串2的长度
5.strcmp函数
strcmp(字符串1,字符串2)
作用是比较字符串1和字符串2
比较的结果
如果字符串1==字符串2,函数值为0.
如果字符串1>字符串2,函数值为一正整数。
如果字符串1<字符串2,函数值为一负数。
6.strlen函数
strlen(字符数组)
测试字符串的长度,函数的值为字符串的实际长度(不包括”\0“在内)
7.strlwr函数
strlwr(字符串)
将字符串中的大写字母换为小写字母
8.strupr函数
strupr(字符串)
将字符串中的小写字母转换为大写字母
3.水仙花数
是指一个N位的正整数n>=3,他的每个位上的数字的N次幂之和等于他本身,
以一个n位数为
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
n=3; //遍历100~999
int first=1;
int i=1;
i=100;
while(i<n){
first*=10;
i++;
}
printf("first=%d\n",first);
i=first;
while(i<first*10){
int t=i;
int sum=0;
do{
int d=t%10;
t/=10;
int p=d;
int j=1;
while(j<n){
p*=d;
j++;
}
}while(t>0){
i++;
}
return 0;
}