【无标题】一些c语言做题笔记 一

本文详细介绍了C语言中的指针与数组的概念,包括指针数组、数组指针、一维和二维数组,以及指针在循环和函数调用中的应用。同时,讨论了while循环条件、rewind()函数的功能、malloc在C与C++中的使用差异、引用与指针的区别、空指针和空引用的含义,以及函数的嵌套调用规则。此外,还涉及内存对齐、结构体的内存布局、文件操作函数fgetc()以及预处理指令和宏定义等内容。
摘要由CSDN通过智能技术生成

int* pa[5] 表示指针数组 指一个数组里面装着指针 int (*p)[5]表示数组指针,表示一个指向数组的指针

int *p;//一维数组 int **p;//二维数组 int (*p)[3];//数组指针 int *p[3];//指针数组

while(i)

不管i是正数还是负数

只要不为零 条件就成立

也就是对于负数的处理和正数的处理是一样的

函数名: rewind() 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。 rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET); [1] 

    用 法: void rewind(FILE *stream);

在C中使用malloc时不需要强制类型转换,因为在C中从void*到其他类型的指针是自动隐式转换的; 在C++中使用malloc时必须要强制类型转换,否则会报错,但在c++中一般用new而不用malloc;

指针在建立后会被分配一块空间,用于存储其所指向的地址,因为指针是有对应内存空间的,因此指针值(指向的内存空间)是可以改变的;而引用则不行,引用没有内存空间,仅仅是被引对象内存空间的别名,改变引用如&a=4实际上等价于a=4,改变的是被引对象的值,不改变该引用所指的内存空间; 

  指向空值的引用是没有意义的(因为引用对象不能改变,也就是这个引用永远指向null,那这个引用根本就没有存在的必要);指向空值的指针是有意义的,尤其在指针被删除后,如果不对指针进行赋值,则指针的值将会由系统随机指定,这样后续如果有对指针的操作的话,将会带来很大的风险。因此指针被删除后必须赋值为null; 

  因为引用无法改变,因此不进行初始化的引用没有意义;因为指针可以改变,因此指针可以不进行初始化,可以在后续程序中动态改变;

函数可以嵌套调用但不可以嵌套定义

c语言必须得有一个主函数吧? 没有主函数那还叫c语言吗?

return后面括号中表达式的值即是函数的值,这句话是错误的,当return后面表达式值的类型与函数的类型不一致时,需要强制类型转化。

对于下面代码段,正确的赋值语句( )

char a[5], *p=a;

A p=“abcd”; P是字符型指针,将“abcd”的地址给了P

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛想成为数据分析师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值