蒋豆芽的面试题专栏(2/C语言基础)

  1. int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?⭐⭐⭐⭐

  2. 结构体和共用体的区别⭐⭐⭐⭐

  3. 简述C++有几种传值方式,之间的区别是什么?⭐⭐⭐⭐

  4. 全局变量和局部变量的区别⭐⭐⭐⭐

  5. 请说说原码、反码、补码⭐⭐⭐⭐

  6. 说说数组和指针的区别⭐⭐⭐⭐⭐

  7. 数组指针与指针数组的区别⭐⭐⭐⭐⭐

  8. 指针函数与函数指针的区别⭐⭐⭐⭐⭐

  9. 请说说内存分布模型⭐⭐⭐⭐⭐

=========================================================================================================

  • 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。
  • 本专栏适合于互联网C++软件开发、嵌入式软件求职的学生或人士。
  • 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。这才是一份面试题总结的正确打开方式。这样才方便背诵
  • 针对于非科班同学,建议学习本人专刊文章《蒋豆芽的秋招打怪之旅》,该专刊文章对每一个知识点进行了详细解析。
  • 如专栏内容有错漏,欢迎在评论区指出或私聊我更改,一起学习,共同进步。
  • 相信大家都有着高尚的灵魂,请尊重我的知识产权,未经允许严禁各类机构和个人转载、传阅本专栏的内容。

=========================================================================================================

  1. int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?⭐⭐⭐⭐

    第一个参数,int型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数

    第二个参数,char*型的argv[],为字符串数组,用来存放指向字符串的指针元素,每一个指针元素指向一个字符串参数。各成员含义如下:

    • argv[0]指向程序运行的全路径名

    • argv[1]指向在DOS命令行中执行程序名后的第一个字符串

    • argv[2]指向执行程序名后的第二个字符串

      。。。。。。

    • argv[argc-1]指向执行程序名后的最后一个字符串

    • argv[argc]NULL

  2. 结构体和共用体的区别⭐⭐⭐⭐

    1. struct和union都是由多个不同的数据类型成员组成。 struct的所有成员都存在;但在任何同一时刻, union中只存放了一个被选中的成员。
    2. 在不考虑字节对齐的情况下,struct变量的总长度等于所有成员长度之和。Union变量的长度等于最长的成员的长度。
    3. struct的不同成员赋值是互不影响的;而对于union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了。
  1. 简述C++有几种传值方式,之间的区别是什么?⭐⭐⭐⭐

    传参方式有这三种:值传递、引用传递、指针传递

    1. 值传递:形参即使在函数体内值发生变化,也不会影响实参的值;

    2. 引用传递:形参在函数体内值发生变化,会影响实参的值;

    3. 指针传递:在指针指向没有发生改变的前提下,形参在函数体内值发生变化,会影响实参的值;

  2. 全局变量和局部变量的区别⭐⭐⭐⭐

    1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等

    2. 内存存储方式不同:全局变量存储在全局数据区(data)中,局部变量存储在栈区(stack)

    3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

    4. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。

  3. 请说说原

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

- 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,总结出了高频面试考点(附有答案)共计309道,事半功倍,为大家春秋招助力。 - 本专栏内容分为七章:共计309道高频面试题(附有答案)

全部评论
这里的p不是指针,变量自身
2 回复 分享
发布于 2021-03-12 09:18
感谢作者!收获很大!
1 回复 分享
发布于 2021-03-15 13:15
6 说说数组和指针的区别 (3)求sizeof:sizeof(数组名)/sizeof(数据类型)是求数组的个数,一般而言,数组个数=sizeof(arr)/sizeof(arr[0]),为什么这里是arr[0]呢?因为数组至少有一个元素,没有元素是数组吗?也是文中提到的”数据类型“。sizeof就是求内存大小,不管有没有内存对齐,而strlen求长度。 比如: struct myData { int a; double b; char c; }; struct myData a; printf("%d\n", sizeof(a)); 输出24,64位机器内存对齐成8Byte
3 回复 分享
发布于 2021-04-14 15:15
大家在看的过程中,遇到什么问题,不清楚的,都可以提出来,我为大家解答。
2 回复 分享
发布于 2021-03-11 10:31
大家记得订阅专栏。多多点赞,会变好看,多多留言,会变有钱。私聊我送学习资料哦,提供求职解疑
2 回复 分享
发布于 2021-03-11 20:30
数组所占存储空间的内存大小:sizeof(数组名)/sizeof(数据类型),这个算的是数组中元素个数吧
1 回复 分享
发布于 2024-03-15 16:08 黑龙江
请问作者,数组指针是一个指针变量,指向的应该是一个一维数组吧。例如,int (*p)[n]和int a[n] 表示的都是一个数组,*p就相当于a的位置。
点赞 回复 分享
发布于 2021-04-22 10:50
数组的存储空间,不是在静态区就是在栈上。这句话,我不大理解,不能存在堆区吗?
点赞 回复 分享
发布于 2022-09-27 01:20 浙江
在data段和代码段应该还有一个rodata段,用来存储一些字符串常量的吧
点赞 回复 分享
发布于 2024-05-06 14:47 浙江

相关推荐

评论
21
6
分享

创作者周榜

更多
牛客网
牛客企业服务