C语言一些重点和问题

  1. main函数的返回值类型我们正常使用时都会省略,但是并不代表函数没有返回值,而反应返回值是int,void才是没有返回值,那么main函数里面正常应该是
    int main(int argc, const char * argv[]),前面一个是int值,理论上后面一个也是int值, 数组指针和指针数组的区别。在这里是char型的指针数组,具体好像还是不太明白
  2. C程序的基本步骤 编写程序--》编译--》链接--》运行   链接:将所有有关联的目标obj文件,和系统C库函数组合在一起生成可执行文件的过程
  3. #include就是把文件内容完全拷贝到#include指令所在的位置
  4. java中在前面定义的方法内部可以调用后面定义的方法;但是在标准的C语言中,这种是不被准许的,只有后面定义的函数才可以调用前面定义过得函数;如果main函数要正常调用定义写在后面的函数,可以在main函数前面做一下函数的声明;大型c程序中,一般将函数的声明和定义分在两个文件中,声明放在.h文件中,函数定义放在.c源文件中
  5. 实参传值给形参,形参的改变不影响实参。* 如果一维数组的名字作为函数实参,传递的是整个数组,也就是形参数组和实参数组完全相同,是存放在统一存储空间的同一个数组,这样形参数组修改时,实参数组也同时被修改了,形参数组的元素个数可以省略
  6. 局部变量必须赋值过才能使用,全局变量int类型系统默认为0
  7. 在C语言中,关系运算的结果为真就返回1,假就返回0;其次在C语言中任何非0值都为真,只有0值才为假
  8. 数组[]里面的个数必须是一个固定值,可以是常量、常量表达式,但是不能是变量或者是变量表达式。访问元素注意数组下标越界
  9. 输出printf puts 输入gets scanf,gets可以读入包含空格、tab的字符串,值达到遇到回车为止,scanf不能用来读取空格、tab。
  10. 疑问char *p =&c; printf(“%d”,*p)输出值为c的值char c = 1;char *p = &c;  printf("%d",*p);输出指针所指向的值
  11. 自动变量存储在堆栈中,所有的局部变量在默认情况下都是自动变量,生命周期在执行到声明自动变量的代码块时,自动变量才被创建,当自动变量所在的代码块执行完毕后,这些自动变量就会自行销毁;静态变量存储在静态内存中,所有的全局变量都是静态变量,被static修饰的局部变量也是静态变量,生命周期,静态变量在程序运行之前创建,在程序的整个运行期间始终存在,知道程序结束;寄存器变量存储在硬件寄存器中的变量,被关键字register修饰的自动变量都是寄存器变量,只有自动变量才可以是寄存器变量,寄存器变量只限于int、char、指针类型变量使用,生命周期,在调佣该函数时占用寄存器,当函数结束时释放寄存器,变量消失。
posted @   风中凌乱的猪头  阅读(41)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示