#include
#include
#include
void swap(int *x,int *y)///指针传参数
{
int temp;
temp=*x;
*x=*y;
*y=temp;
//printf("x=%d,y=%d\n",*x,*y);
}
void break_continue_return(int x)
{
int i,j=222,k=444;
int x1=13,y1=45;
swap(&x1,&y1);
//printf("x1=%d,y1=%d\n",x1,y1);
for ( i = 0; i < 10; i++)
{
if (i == 3)
{
break;
// continue;//i=3的时候结束这一次的循环,继续执行i=4的循环
j=333;
//return 0;// 直接结束整个函数
}
k=555;
printf(" %d\n",i);
}
printf("\n\n");
printf(" j= %d\n",j);
printf(" k= %d\n",k);
printf("\n");
}
void while_and_do_while(int x)
{
// while循环
int i=0;
while(i<0) // 每次执行循环体前都要进行判断条件
{
i++;
printf(" jj %d\n",i);
}
printf("j %d\n",i);
// 执行完后 i=0;
// do......while循环
i=0;
do // 第一次不用判断条件,直接执行循环体
{
i++;
printf(" gg %d\n",i);
}
while(i<0);
printf("g %d\n",i);
// 执行完后 i=0
}
void array_subscript(int x)
{
int a[5]= {1,3,2,4,7};
printf("%d %d\n",a[1],4[a]);
printf("%c \n","Hello world"[1]);
}
void character_and_string(int x)
{
int i=0;
char a[10]= {'G','O','O','D','\0','h',' ','kl'}; //第一个ASCII码是0,对应的字符是(Null),其实就是‘\0’,即空字符.
//计算机自动添加
for(i=0; i<10; i++) //仅一个字符,否则取最后一个字符,取h和l
printf("%c ",a[i]);
printf("\n\n");
char b[]= {'0','1','2'};
for(i=0; i<3; i++)
printf("b[%d]=%d\n",i,b[i]);
printf("\n\n");
char c=0;
printf("c=%c \n",c+'0');
printf("c=%d \n",c+'0');
printf("\n");
char d='0';
printf("d=%c \n",d+'0');
printf("d=%d \n",d+'0');
printf("\n");
char e='0';
printf("e=%c \n",e+1);
printf("e=%d \n",e+1);
printf("\n");
char f=0;
printf("f=%c \n",f+1);
printf("f=%d \n",f+1);
printf("\n");
}
int main()
{
//swap(1,1);
//break_continue_return(2);
//while_and_do_while(3);
//array_subscript(4);
character_and_string(5);
return 0;
}
/*
1. 指针函数的调用:
2. 三者的区别:
. break :
(1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。
(2).只能跳出一层循环,如果循环是嵌套循环,则需要[逐层判断,逐步跳出]
(3).当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
总的来说:就近原则,结束当前的整个循环。
. return:
(1). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
. continue:
(1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
(2).只能结束循环中的一次过程,但不能终止循环继续进行.
3. while 与 do while 的区别
do while : 循环体内代码至少被执行一次。(肚子饿了,看到吃的先狂吃一顿,直到被发现了,就闭嘴停不吃了).
while : 循环体内的代码有可能永远不会执行。(肚子饿了,先问一下能不能吃东西,同意了就狂吃,
直到不允许吃为止,不同意,就忍着忍着忍着不吃走了.....)
4. array and subscript:
n[a]=*(n+a)=*(a+n)=a[n];
5. 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别
‘\0’和‘0’的区别.共同点: 它们都是字符,
在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节。
第一个ASCII码是0,对应的字符是(Null),其实就是‘\0’,即空字符。
判断一个字符串是否结束的标志就是看是否遇到‘\0’,若遇到‘\0’,则表示字符串结束。
而字符‘0’对应的ASCII码是48,48对应的十六进制数就是0x30, 通常我们在编程的时候,
用字符转化为数字的时候经常要用到,若要将‘8’转换为数字8,则“ 8+‘0’”即可。
这里的8就是数字。
字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,
它们的含义和在计算机中的存储方式截然不同。但是字符常量可以像整数一样在程序中参与相关运算。
例如:‘9’-3;。
“0”和‘0’的区别。首先“0”是字符串常量,字符串常量是由一对双引号括起的字符序列。
例如:“CHINA”,“I LOVE YOU”,“123”等都是合法的字符串常量。
‘0’是字符常量,字符串常量和字符常量是不同的量。
1:字符常量由单引号括起来;字符串常量由双引号括起来。
2:字符常量只能是单个字符;字符串常量则可以含一个或多个字符。
这里先介绍表达上的主要区别,在运用中还有存储空间的不同以及赋值方式的不同等等。*/