2.8 自增和自减运算符
1) if (c ==‘\n’)
++nl ;
注意:1 这种运算符可以放在变量a的前面或者后面,针对变量a效果都是一样的,将a的值加1.
#include "stdio.h"
main()
{
inta = 065;
printf("%d\n", - -a); //先把a的值减1,然后再使用,输出
//先执行了a=a-1,又执行了a输出
getchar();
}
有问题的代码:
#include"stdio.h"
/* squeeze(s,c) 函数,删除字符串s中出现的所有字符c*/
void squeeze(chars[],int c)
{
int i,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i] != c)
s[j++]=s[i];
s[j]='\0' ;
}
/*遍历数组*/
void allover(char a[])
{
int i;
// for(i=0;i<sizeof( s )/sizeof( s[0]);i++)
//puthcar(s[i]);
// printf("%c",s[i]) ;
printf("%d", sizeof( a )/sizeof(a[0] ) );
// printf("%d",sizeof(s));
// printf("%d",sizeof(s[0])) ;
// printf("\n");
}
main() 两段代码的结果为什么不一样
{
char s[]="ssssssss";
allover(s);
printf("%d",sizeof( s )/sizeof( s[0] ) );
// squeeze(s,'s');
// allover(s);
getchar();
}
/*sizeof(array)/sizeof(array[0]),array可以是任何类型的数组*/
抽象总结出来的问题如下:
voidallover(char a[]) 因为a在这里被当做指针类型,存储的是数组第一个元素的地址,属于指针类型!,打印出4个字节大小
{
printf("%d", sizeof( a )/sizeof(a[0] ) );
}
main()
{
char s[]="ssssssss";
allover(s);
printf("%d", sizeof( s )/sizeof(s[0] ) );
} 两段代码的结果为什么不一样?