01
#include <stdio.h>
int main()
{
char *s1[] = {"right?"};
// 系統會根據數據總個數和第2維的長度算出第1維的長度
char s2[][20] = {"right"};
// 存放着 6 個指針變量的一位數組
char *s3[6];
s3[1]="right";
char s4[6][20];
// 報錯,s4[1] 是一個地址
s4[1]="right";
return 0;
}
02
#include <stdio.h>
int main()
{
int x;
float y;
scanf("%2d%f",&x,&y);
printf("x=%d,y=%f\n",x,y);
}
執行結果
03
#include <stdio.h>
int ADD(int x, int y)
{
return x+y;
}
int main()
{
int k,x=5,y=10;
// 定義指向函數的指針變量 f,f先與*結合,表示指針變量,再與()結合,()表示是函數,即該指針變量指向函數
int (*f)();
f=ADD;
k=(*f)(x,y);
k=ADD(x,y);
// 報錯,指針型函數int *func(int x,float y),返回值是地址
k=*f(x,y);
k=f(x,y);
}
04 計算 n!
#include <stdio.h>
int main()
{
int n=3,i,sum=1;
for(i=n;i>=2;i--){
sum*=i;
}
printf("%d\n",sum);
}
05
#include <stdio.h>
int main()
{
// s1 無字符串結束符,長度不能確定;s2長度爲數組元素的個數
char s1[]={'x','y','z'}, s2[10]={'x','y','z'};
// strlen(s)返回s字符串中字符的個數,若s是一個數組,則返回數組元素的個數
printf("%d %d\n",strlen(s1),strlen(s2));
}
執行結果:
06
#include <stdio.h>
int main()
{
float a=123.4567;
// (12345.67+0.5)/100=123.46
printf("%f\n",(int)(a*100+0.5)/100.0);
}
執行結果:
07
#include <stdio.h>
int main()
{
float a=123.4567;
// (12345.67+0.5)/100=123.46
printf("%f\n",(int)(a*100+0.5)/100.0);
}
執行結果:
08
#include <stdio.h>
int main()
{
int a=3;
do{
// %3d:輸出最小域寬爲3個字符的整數
printf("%3d\n",a-=2);
}while(!(--a));
return 0;
}
執行結果:
09
#include <stdio.h>
struct num{
int x;
int y;
}n={1,3};
int main()
{
struct num *p=&n;
// 3/1=3 3*4=12
int result = p->y/n.x*++p->y;
printf("%\n",result);
return 0;
}