返回

C语言基础2(结构体)

发布时间:2023-02-17 18:11:54 108



#include
//b=a++ 先使用(赋值) 后++
//b=+=a 先++ 后使用
//"[]"下标引用操作符
//“()”也是函数调用操作符
//有符号数:符号归到最高位的位置1 负数;0 正数;
//只要是整数,存储的都是补码!!!
//自己定义的符号名,不能和C语言自带的符号名冲突
//typedef:类型定义、类型重定义
//unsigned无符号定义
//局部变量一但出了{}范围就自动停止 并且销毁了
//static int a ; a是一个“静态局部变量”。会保存上一次留下的值!!!!! 作用:修饰局部变量 其生命周期延长了
//static 修饰全局变量改变了变量的作用域,让其只能在自己所在的.c文件里面使用

//声明外部函数!!!!!:extern int f(x)(int ,int );

//指针变量 专门用来存放地址的 int *p=&a;//地址用“%p”来输出 p的类型是int *的 p还是变量!!!_
//-p是一个指针变量(p所指向的那个对象a是int 类型的所以是"int*p";
//*p - 意思是通过p里面的地址找到其代表的变量 (“*”叫解引用操作符、间接访问操作符)

////如:
// int a = 10;
// int *p = &a;
// *p = 20;//改变了a的值
// printf("a=%d\n", a);

// double d = 3.14;
// double *dp = &d;
// *dp = 5.5;
// printf("d=%lf\n", d);//double类型是lf

//指针变量的大小:32位的是 4 字节;64位的是 8字节!!!!!
//无论什么类型的指针;(int*,double,char,..)32位的大小都是4!!!!!64位都是8.


//结构体(例如 人或书。。复杂的对象不是简简单单用一个数字或符合就能表达的 其有许许多多属性)
//结构体是自己创造出的类型!!!!!
//“struct”关键字来描述

struct BOOK //描述一本书
{
char name[20];//描述书名 char-数组
short price;//定义一个整数变量 price表示价格

};//“;”必须加上 其是为了结束类型定义的
int main(){
//利用结构体类型 创建结构体变量b1
struct BOOK b1={"C语言程序设计",55}; //创建一本书b1 书名C语言程序设计,价格55 整形数值不要“”包围
printf("书名:%s\n",b1.name);//%s 字符串输出符号 b1.name 表示其值是b1当中的书名
printf("价格:%d\n", b1.price);//价格其是一个数
b1.price = 15;//也可以修改其值
//只有非数组操作符才能这样赋值修改!!!!!
strcpy(b1.name, "C++");//数组变量只能用”strcpy()“函数函数修改 !!!!!!
printf("修改后的价格:%d\n", b1.price);

//struct BOOK b1 = { "C语言程序设计", 55 };
//其类型是 struct BOOK为一个类型!!!!!
//如果要取地址:struct BOOK *p=&b1;!!!!!!!!
struct BOOK *p = &b1;
//利用指针变量p打印出其书名与价格!!!!!
printf("书名:%s\n", (*p).name);
printf("价格:%d\n", (*p).price);
//或可以简化其 利用“->‘指向字符!!!!!
printf("书名:%s\n", p->name);
printf("价格:%d\n", p->price);

//其中“."操作符利用与结构体变量当中 ”.成员“可以找到成员
// “->"利用的是结构体指针”->成员“可以找到成员
return 0;
}

int main(){
//只有一个;分号的叫做“空语句”
//if语句大于什么并且小于什么 使用的是逻辑与&&、或||
//编译器认为在没有括号的情况下:else是与其离得最近的if进行匹配的
//输出奇数1~100

//int i = 1;
//while (i<100)
//{
// if (i %2 == 1)
// printf("%d\n ", i);
// i++;
//}
//

//switch (case的 整形表达式){case1:printf();break; case2:printf();break; case3:printf();break; ...;default:.. }
//break:跳出语句循环(不一定要全加) case的后面必须是整形常量表达式!!!!! default在所有case没有满足后用此输出!
//也可以:switch (case的 整形表达式){case1;case2;case3;cse4;case5;printf();case6;printf();break;}
//可以把输出类型相同的case结果放在一起!

//getchar()-获取字符 键盘内地!!!!!

return 0;
}


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
C语言笔记 2023-02-17 17:53:30