C语言理论知识点
引用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区。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |