变量
short-16bit int-32bit long-64bit float-32bit(不可靠) double-64bit char-8bit
占内存大小该变量的所属类型
1bit 1/0 1B=1字节=8bit=8比特
#include<stdio.h>
#include<stdlib.h>
int main(){
short x1 = 112;
int x2 = 12;//000000000000000000000000001100
long x3 = 33L;
float x4 = 23.34F;
double x5 = 234.345;
//char的底层存储的就是编码值
char x6 = 'w';//119
char x7 = '3'; //字符-字符符号-符号-几何图形
char x8 = '#'; //编码35 00100011
printf("%c %d\n",x6,x6);
printf("%c %d\n",x7,x7);
printf("%c %d\n",x8,x8);
printf("%f\n",x4);
printf("%f\n",x5);
return 0;
}
函数
设函数f(x) = 3x-4,x属于z
设整数 k1 = f(4)
设整数 k2= f(k1 - 2)
设整数 k3 = f(f(2) - k1) + f(k1-k2)
设函数 g(x,y),其中x,y均属于z,g(x,y) = {f(x)-y, x>=0
f(x+y) - x, x
设整数 m1 = g(k1,k2)
设整数 m2 = g(f(k1)-9,f(k2)-20)
设整数 m3 = g(f(k3)-g(3,m2),f(m1))
设函数 w(x,y) 其中,x属于z,y属于R,w(x,y) = 3x+2.5y
设实数 w1 = w(k1,3.5F)
w2 = w(f(k2),w(f(k1),w1))
#include<stdio.h>
#include<stdlib.h>
int f(int x){
return 3*x-4;
}
int g(int x,int y){
if(x>=0){
return f(x)-y;
}else{
return f(x+y) - x;
}
}
double w(int x,double y){
return 3*x+2.5*y;
}
F(int x){
if(x<3){
return 1;
}else{
return F(x-1)+F(x-2);
}
}
int main(){
int x=2;
int y = 2 *x-7;
int k1 = f(4) ;
int k2= f(k1 - 2);
int k3 = f(f(k2) - k1) + f(k1-k2);
printf("%d %d %d",k1,k2,k3);
printf("%d",y);
int m1 = g(k1,k2);
int m2 = g(f(k1)-9,f(k2)-20);
int m3 = g(f(k3)-g(3,m2),f(m1));
printf("%d %d %d",m1,m2,m3);
double w1 = w(k1,3.5);
double w2 = w(f(k2),w(f(k1),w1));
printf("%lf,%lf",w1,w2);
//递归调用
int num = F(6);
printf("%d",num);
return 0;
}
吃空格!(字符的输入)
#include<stdio.h>
#include<stdlib.h>
int main(){
int a ;
float b;
char c;
scanf("%d",&a);
scanf("%f",&b);
scanf("%c",&c);
printf("a=%d\n",a);
printf("b=%f\n",b);
//回车和空格也属于字符
printf("c=%c\n",c);
return 0;
}
scanf("%d",&a);
scanf("%f",&b);
scanf("%c%c",&c,&c);
指针
#include<stdio.h>
#include<stdlib.h>
int main(){
int a ;
a=10;
int b;
b = 18;
int c;
c=a;
c=b;
int* k1;
k1 = &a;
int* k2;
k2=&b;
int* k3;
k3 = k1;
k3 = k2;
return 0;
}
/*
*/
k2=999;//擅自改变到指定指向,非法操作,但不报错 在比赛ACM,CSP,含量高的比赛--Dev_c++
指针在这四个方向(单个数据,代表数组,结构体指针,传参指针)语法有差异,不一致
在计算机中,一块区域的地址用第一个数据的地址代指
int arr[5] = {1,2,3,4,5};
int arr2[7]={1,1,1,2,3,4,9};
//arr2 = arr;//java/C#可以这么写
int m1 = arr[0];
k2=arr;//不需要 m1 = *k2[4]
m1=k2[4];