加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C语言理论知识点

发布时间:2020-12-15 04:49:17 所属栏目:百科 来源:网络整理
导读:引用 int main() { int a = 10; int b = a; }*/ `引用相当于变量的别名。所以a和b等价。通俗讲相当于起了两个名字。 引用时 (1)必须要初始化(2)没有空引用 (3)没有二级引用。`` struct Student { char s_id[20]; char s_name[20]; char s_sex; int s_a

引用

int main()

{

int a = 10;

int &b = a;

}*/

&`引用相当于变量的别名。所以a和b等价。通俗讲相当于起了两个名字。

引用时 (1)必须要初始化(2)没有空引用 (3)没有二级引用。``

struct Student

{

char s_id[20];

char s_name[20];

char s_sex;

int s_age;

};

int main()

{

Student s;

InitStudent(&s);

return 0;

}

void InitStudent(Student *sp)//指针

{

//if(NULL==sp); return;

assert(sp != NULL);

strcpy(sp->s_id,"201801001");

strcpy(sp->s_name,"hsljkl");

sp->s_sex = 'm';

sp->s_age = 16;

}

void Init_Student(Student & st)//别名 .st相当于主函数里的s.

{

strcpy(st.s_id,"201801001");

strcpy(st.s_name,"hsljkl");

st.s_sex = 'm';

st.s_age = 16;

}

void InitStudent(Student*sp)

{

int ar[5] = { 100,15,12,12 };

strcpy(sp->s_name,"hsljkl");

sp->num = 5;

memmove(sp->grade,ar,sizeof(ar));

}

void Init_Initstudent(Student & t)

{

int ar[5] = { 100,12 };

strcpy(t.s_name,"hsljkl");

t.num = 5;

memmove(t.grade,sizeof(ar));

}

int main()

{

Student s;

InitStudent(&s);

Init_Initstudent(s);

}

InitStudent(&s)是用指针初始化,Init_Initstudent(s)是用别名初始化的。 这里的memmove是系统自带的函数用法是:`void *memmove( void* dest,const void* src,size_tcount );`

由src所指内存区域复制count个字节到dest所指内存区域。

src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针。

assert称为断言。其作用是如果它的条件返回错误,则终止程序执行.

1、 局部变量都在stack区。

2、 全局变量、静态变量、字符串常量在data区。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读