c语言技术排名系统,c语言技术点

占位符:

int–>%d

long int–>%ld

char–>%c

float–>%f

短整形(short)–>%hd

double–>%lf

十六进制输出–>%#x

无符号(unsigned)–>%u

字符串–>%s

八进制–>%o

确定位数的浮点型:%.4f

指针

指针和指针变量的区别:

指针就是内存地址。

内存地址就是内存单元的编号(存放1和0的东西)。

指针变量就是存放内存地址的变量。

int i = 10;

int *p;

p = &i;

printf("地址 = %d",p);

printf("地址所放的值 = %d",*p);

printf("地址所放的值 = %d",i);

printf("地址所放的值 = %d",&i);

输出:

e31d72db7d8f

输出

多级指针:

//定义一个int类型的变量,并且赋值为100

int i = 100;

//定义一个int类型的一级指针变量p1,并且把i的地址赋值给它

int* p1 = &i;

//定义一个int类型的二级指针变量p2,并且把p1的地址赋值给它

int** p2 = &p1;

//定义一个int类型的三级指针变量p3,并且把p3的地址赋值给它

int*** p3 = &p2;

//定义一个int类型的四级指针变量p4,并且把p3的地址赋值给它

int**** p4 = &p3;

//多级指针取值

printf("****p4的值%d\n",****p4);

数组

定义:

int array[] = {1,1,1,};

int array[] =

动态分配内存:

// 分配一个int大小的内存。

int* temp = malloc(sizeof(int));

// 移动分配大小

int* array = malloc(4 * 4);

*(array) = 1;

*(array + 1) = 2;

.....

// 重新分配大小

temp = realloc(temp,12);

函数指针:

返回值、参数的类型和个数

//定义一个函数

int add(int a,int b) {

return a + b;

}

main() {

//定义函数指针

//返回值类型,变量名可以随便取,函数没有方法体

int (*point)(int a,int b);

//给函数指针赋值

point = add;

//使用函数指针

int result= point(12,5);

printf("result=%d\n",result);

system("pause");

}

Unition联合体

// 声明联合体的时候不能进行赋值。

union Mix {

long i;//4个字节

int k;//4个字节

};

main() {

printf("mix长度=%d\n",sizeof(union Mix));

union Mix m;

m.k=100;

m.k=123;

printf("m.i=%d\n",m.i);

printf("m.k=%d\n",m.k);

system("pause");

}

枚举

/**

枚举的值是递增的,首元素默认等于0

*/

enum WeekDay {

Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday

};

main() {

//enum WeekDay day= Sunday;

printf("%d\n",Sunday);

system("pause");

}

Typedef(别名)

为一个东西取一个别名。

typedef int i;//给int类型取了个别名叫i

typedef long l;//给long类型取了个别名叫l

main() {

//这里i就代表了int类型

i a=10;

//l就代表了long类型

l b=1234355466;

printf("a=%d\n",a);

printf("b=%ld\n",b);

system("pause");

}

结构体

struct Student {

int age;//年龄

float score;//分数

char sex;//性别

};

main() {

//使用结构体,并对变量进行初始化

struct Student stu= {18,90.9,'W'};

printf("age=%d\n",stu.age);

printf("score=%.1f\n",stu.score);

printf("sex=%c\n",stu.sex);

//结构体赋值

stu.age=20;

stu.score=100;

stu.sex='M';

printf("age=%d\n",stu.age);

printf("score=%.1f\n",stu.score);

printf("sex=%c\n",stu.sex);

};

结构体指针和多级结构体指针

struct Student {

int age;//年龄

float score;//分数

char sex;//性别

};

main() {

//使用结构体

struct Student stu= {18,90.9,'W'};

//结构体指针

struct Student* point = &stu;

//结构体指针取值,(*point)取得是结构体

printf("(*point).age=%d\n",(*point).age);

//(*point).age等价于point->age;

printf("point->age=%d\n",point->age);

printf("point->score=%.1f\n",point->score);

printf("point->sex=%c\n",point->sex);

//结构体赋值

point->age=22;

printf("修改后age=%d\n",point->age);

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值