C-Study-1

jrl Lv3

C-STUDY-1

一、指针

(14条消息) C语言指针详解(经典,非常详细)_liu100m的博客-CSDN博客_c语言指针用法详解

1.指针类型的意义

指针类型决定了:指针解引用的权限有多大,以及“+1”时走的步长(int,4字节 char,1字节,因为只跳过一个字符)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main()
{
int arr[10]={0};
int*p=arr;
for(int i=0;i<10;i++) //整形数据占4字节,若换成 char*p则无法将arr中的元素全赋值为0
{
*(p+i)=0;
}

for(int i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}

记得将指针初始化,若不知道则赋值为空指针

int*p=NULL; //此时仍然无法赋值,因为NULL不属于个人

2.指针的运算

指针-指针 得到的是两个指针间元素的个数 (前提是指针类型相同且指向同一空间)

指针+指针 无意义

1
2
3
4
5
6
7
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",&arr[9]-&arr[0]);
return 0;
}

3.指针与数组

数组名是数组首元素的首地址

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
int main()

{

int arr[10]={0,1,2,3,4,5,6,7,8,9};

printf("%p",arr); //等价于 printf("%p",&arr[0]);

return 0;

}

4.二级指针

1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{
int a=7;
int*p=&a; //p是指针变量,一级指针
int**pa=&p; //pa也是指针变量,二级指针 &pa取出pa在内存中的起始地址
return 0
}

二、文件

((14条消息) C语言文件操作(含详细步骤)_zjruiiiiii的博客-CSDN博客_c语言文件操作 )

三、链表

((14条消息) C语言链表超详解_rivencode的博客-CSDN博客 )

  • Title: C-Study-1
  • Author: jrl
  • Created at: 2023-02-20 16:34:04
  • Updated at: 2023-08-07 19:03:00
  • Link: https://jrl777.github.io/2023/02/20/C-Study-1/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments