1,int,long int 分配的都是4个字节;float,4 ;double,8;long double,16个字节。
像3.1415926默认是double型数据;
2,! > 算术运算符(+,-,*,/) > 关系运算符(<,>,<=,>=,==,!=) > &&和|| > 赋值运算符(=)。
3,用到true时,需引入stdbool.h头文件。
#include
#include
int main(){
_Bool a;
a = 10>=0;
if(a == true)
printf("%d",a);
}
4,数组名代表数组的首元素的地址。
char c[] = {"china"};
printf("%s",c);
5,函数的声明的作用,是把函数的名字,类型,形参的类型,个数,顺序,告知编译系统,以便在函数调用时,系统按此进行对照检查。6,指针与数组
int a = 11;
int *p;
p = &a;//把a的地址 赋值给p
printf("%d\n%d\n",a,p);
int n[] = {1,2,3};
printf("%d\n%d\n%d\n%d\n",&n[0],n,*n,*&n[0]);
7,指针变量作实参,必须使指针变量有确定值。
8,选择排序算法。
void sort(int x[], int n){
int i,j,k,t;
for(i = 0; i< n-1; i++){
k = i;
for(j = i+1; j < n; j++){
if(x[j] > x[k]){//由大到小排序
k = j;
}
}
if(k != i){
t = x[i];
x[i] = x[k];
x[k] = t;
}
}
}
9,指向由m个元素组成的一维数组的指针变量
实例1:
int m[4][3] = {{11,22,33},{332,444,55},{66,77,88},{00,99,88}};
int (*s)[2];
s = m;
printf("%d\n%d\n",*(*(s+1)+1),(*s)[2]); //444 , 33
int m[4][3] = {{11,22,33},{332,44,55},{66,77,88},{00,99,88}};
int (*s)[2];
s = m;
printf("%d\n%d\n",*(*(s+1)+1),(*s)[2]);//332,33
10,字符串与指针
char a[] = "Ilikeyou!";
char *str ;
str = a;
printf("%c\n%c\n%c\n%c\n",str[3],a[3],*(a+3),*(str+3));
11,指针与函数
用指向函数的指针,作为参数,传递到其他函数中
int (*p)(int , int)
12,一些定义;
int *P;//指针变量
int (*p)[4];//行指针
int (*p)(int, int){};//指向函数的指针
int *p(){};//返回指针指的函数
int *p[4];//指针数组
int **p;//多重指针
void *p;//p 是一个指针变量,基类型为void(空类型),不指向具体的对象
char *s[] = {"111","sdmn"};
char *c ;
char str[] = "klkl";
c = str;
printf("%s\n%c\n%c\n%c\n",s[1],*(str+1),*(s[1]+2),*s[1]);
char **p;
p = s + 1;
printf("%d\n%d\n%s\n",s[0],*p,*p);
enum Week{
sun,mon,sta
}a;
enum Week b;
a = mon;
b= sta;
printf("%d",b);
union Data{
int i;
char ch;
float f;
}a,b;
union Data c;
a.i = 97;
a.ch = 8;
a.f = 90;
c.i = 89;
printf("%f",a.f);
struct Stu{
int num;
char name[20];
}a={10101,"lilin"};
struct Stu b = {10102,"lloyd"};
struct Stu c = {.name = "chou",.num = 10103};
printf("%d\n%s", c.num,c.name);
15,文件
FILE *p;
p = fopen("file.dat","w");
char ch;
ch = getchar();
while(ch != '#'){
fputc(ch,p);
putchar(ch);
ch = getchar();
}
//fputc('q',p);
fclose(p);
//putchar(10);
16,带参数的宏
#include
#include
#define SQ(y) ((y)*(y))
int main(int argc, char *argv[]) {
int i = 1;
while(i<=5){
printf("%d\n",SQ(i++));
}
}
/*int SQ(int y){
return ((y)*(y));
}*/