栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习记录day9

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习记录day9

调用函数时,

()就是函数调用操作符
struct Stu//创建一个结构体类型
{
    //成员变量
    char name[20];
    int age;
    char id[20];
};
int main()
{
    int a = 10;
    struct Stu s1 = { "张三",20,"20211109" };//创建一个学生对象s1,并初始化
    struct Stu* ps = &s1;
    printf("%sn", (*ps).name);
    printf("%dn", (*ps).age);
    printf("%sn", (*ps).id);
    printf("%sn", ps->name);//->结构体指针操作符
    printf("%dn", ps->age);
    printf("%sn", ps->id);
    printf("%sn", s1.name);
    printf("%dn", s1.age);
    printf("%sn", s1.id);
    //结构体变量.成员名
    return 0;
}

 

表达式求值
表达式求值的顺序一部分由操作符的优先级和结合性决定,有些表达式的操作数在求值的过程中可能需要转换为其他类型。
隐式类型转换
C的整型算数运算总是至少以缺省整型类型的精度来进行的,整型提升,
int main()
{
    char a = 3;//00000011
    char b = 127;//01111111
    char c = a+b;//10000010
    printf("%dn", c);//1111111111111111111111110000010补码
    //                  1000000000000000000000001111110原码
    //                  -126

    return 0;
}


算术转换
两个操作数类型不同时,要把晓得类型转换成更大操作数的类型后执行运算
操作符的属性
1.操作符的优先级
2.操作符的结合性
3.是否控制求值顺序
如果表达式不能通过操作符的属性确定唯一的计算路径,那么这个表达式就是存在问题的

 


指针 
是编程预压你的一个对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值,地址指向该变量单元,称为指针
其实就是存放地址的变量,存放在指针中的值被当成地址处理

int main()
{
    printf("%dn",sizeof(char*));
    printf("%dn", sizeof(short*));
    printf("%dn", sizeof(int*));
    printf("%dn", sizeof(double*));

    return 0;
}

指针类型决定了指针进行解引用操作的时候,能够访问的空间的大小

 指针类型决定了:指针走一步走多远
int*p:p+1    4
char* p;p+1  1
double*p; p+1   8

野指针:指针指向的位置是不可知的 

1.指针未初始化

2.指针越界访问

3.指针指向的空间释放

如何避免?

1.指针初始化

2.小心指针越界

3.指针指向空间释放及时置NULL

4.之魂使用之前检查有效性

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号