解析sizeof, strlen, 指针以及数组作为函数参数的应用
更新时间:2020年4月25日 17:46 点击:1811
代码如下所示:
typedef struct st_test
{
int id;
char *pName;
char class[10];
}Student;
void fn(Student *pStud) {
pStud->id = 10;
pStud->pName = "Tom Simith";
strcpy(pStud->class, "Class 1");
printf("sizeof(pStud) = %d /n", sizeof(pStud)); // sizeof(pStud) = 4
printf("sizeof(pStud->id) = %d /n", sizeof(pStud->id)); // sizeof(pStud->id) = 4
printf("id:%d/n", pStud->id); // id:10
printf("sizeof(pStud->pName) = %d /n", sizeof(pStud->pName)); // sizeof(pStud->pName) = 4
printf("strlen(pStud->pName) = %d /n", strlen(pStud->pName)); // strlen(pStud->pName) = 10
printf("Name:%s/n", pStud->pName); // Name:Tom Simith
printf("sizeof(pStud->class) = %d /n", sizeof(pStud->class)); // sizeof(pStud->class) = 10
printf("strlen(pStud->class) = %d /n", strlen(pStud->class)); // strlen(pStud->class) = 7
printf("class:%s/n", pStud->class); // class:Class 1
}
void fnArray(char arr[]) {
printf("arr:%s/n", arr); // arr:Hello
printf("sizeof(arr) = %d /n", sizeof(arr)); // sizeof(arr) = 4 The length of pointer
printf("strlen(arr) = %d /n", strlen(arr)); // strlen(arr) = 5 The length of array
}
int main(int argc, char **argv)
{
Student stud;
fn(&stud);
fnArray("Hello");
return 0;
}
复制代码 代码如下:
typedef struct st_test
{
int id;
char *pName;
char class[10];
}Student;
void fn(Student *pStud) {
pStud->id = 10;
pStud->pName = "Tom Simith";
strcpy(pStud->class, "Class 1");
printf("sizeof(pStud) = %d /n", sizeof(pStud)); // sizeof(pStud) = 4
printf("sizeof(pStud->id) = %d /n", sizeof(pStud->id)); // sizeof(pStud->id) = 4
printf("id:%d/n", pStud->id); // id:10
printf("sizeof(pStud->pName) = %d /n", sizeof(pStud->pName)); // sizeof(pStud->pName) = 4
printf("strlen(pStud->pName) = %d /n", strlen(pStud->pName)); // strlen(pStud->pName) = 10
printf("Name:%s/n", pStud->pName); // Name:Tom Simith
printf("sizeof(pStud->class) = %d /n", sizeof(pStud->class)); // sizeof(pStud->class) = 10
printf("strlen(pStud->class) = %d /n", strlen(pStud->class)); // strlen(pStud->class) = 7
printf("class:%s/n", pStud->class); // class:Class 1
}
void fnArray(char arr[]) {
printf("arr:%s/n", arr); // arr:Hello
printf("sizeof(arr) = %d /n", sizeof(arr)); // sizeof(arr) = 4 The length of pointer
printf("strlen(arr) = %d /n", strlen(arr)); // strlen(arr) = 5 The length of array
}
int main(int argc, char **argv)
{
Student stud;
fn(&stud);
fnArray("Hello");
return 0;
}
下一篇: c 调用python出现异常的原因分析
相关文章
- 这篇文章主要介绍了java中的空指针异常情况以及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-02
- 下面小编就为大家分享一篇基于C#调用c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C++交换指针实例,针对C与C++交换指针的方法进行了较为详细的对比分析,非常具有实用价值,需要的朋友可以参考下...2020-04-25
- 在C#中,有时候希望通过指针来操作内存,这样可以提高效率。我们可以用unsafe关键字修饰含有指针操作的程序段...2020-06-25
- 这篇文章主要介绍了详解C++数组和数组名问题(指针、解引用),指针的实质就是个变量,它跟普通变量没有任何本质区别,指针本身是一个对象,同时指针无需在定义的时候赋值,具体内容详情跟随小编一起看看吧...2021-09-18
- 这篇文章主要介绍了C++ 函数指针内容,下面文章围绕C++ 函数指针的相关资料展开详细内容,包括函数指针的进阶内容,需要的朋友可以参考一下,希望对大家有所帮助...2021-11-16
- 下面小编就为大家分享一篇C#访问C++动态分配的数组指针(实例讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 刚接触到指针时,关于指向变量的常指针和指向常变量的指针容易混淆,所以整理下,希望能够帮助自己也帮助到大家...2020-04-25
- 这篇文章主要介绍了C语言安全之数组长度与指针,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C语言 一级指针与二级指针详细介绍的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C#通过指针读取文件的方法,涉及C#针对文件的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c++传递函数指针和bind的示例,需要的朋友可以参考下...2020-04-25
- 刚接触到指针时,关于C++常量指针,指针常量,指向常量的常指针容易混淆,所以整理下,希望能够帮助自己也帮助到大家...2021-10-18
- 下面小编就为大家带来一篇详谈C++引用&和指针在作为形参时的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
深入学习C++智能指针之shared_ptr与右值引用的方法
智能指针的核心实现技术是引用计数,每使用它一次,内部引用计数加1,每析构一次内部的引用计数减1,减为0时,删除所指向的堆内存,今天通过本文给大家分享C++智能指针之shared_ptr与右值引用的方法,需要的朋友跟随小编一起看看吧...2021-07-13- 指针与引用看上去完全不同(指针用操作符*和->,引用使用操作符.),但是它们似乎有相同的功能,感兴趣的朋友可以了解下啊,或许本文对你有所帮助,好了,话不多说,切入正题...2020-04-25
- 这篇文章主要介绍了C语言中二级指针的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握理解二级指针的知识,需要的朋友可以参考下...2020-04-25
- 下面小编就为大家分享一篇c++用指针交换数组的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-25
- 今天小编就为大家分享一篇关于运用指针在不用加号的情况进行加法运算的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-04-25
- 这篇文章主要介绍了C++不使用变量求字符串长度strlen函数的实现方法,实例分析了strlen函数的实现原理与不使用变量求字符串长度的实现技巧,需要的朋友可以参考下...2020-04-25