我是靠谱客的博主 火星上枕头,这篇文章主要介绍C语言入门12指针,现在分享给大家,希望可以做个参考。

指针

概念

  • 计算机中所有的数据都必须存放在内存中,不同数据类型的数据占用的字节数不一样。为了正确的访问这些数据,必须为每个字节都编上号码,我们把这些编号称为地址或指针。

  • 在C语言中,将地址形象的称为“指针”。一个变量的地址称为变量的”指针“。一个专门用来存放另一个变量的地址的变量,则称它为”指针变量“。

  • 地址: 操作系统的寻址空间编号,也就是操作系统给每个存储单元分配了统一的编号。

  • 32bit平台下,地址总线32位,所以地址编号32位编号,指针变量就是32位即4字节。其范围就是0x0000 0000 - 0xFFFF FFFF注:

注:1. 无论什么类型地址,都是存储单元的编号,在32bit下都是4字节,即任何类型的指针变量都是4字节

​ 2. 对应的类型的指针变量,只能存放对应类型变量的地址

指针运算符

  • 指针变量中只能存放地址,与指针相关的两个运算符是&(取地址运算符)和*(取值运算符)。

  • 地址采用取值运算符*会得到地址对应的变量,而变量使用取地址运算符&会得到该变量对应的地址,可以存放到指针变量中。两个符号同时使用会相互抵消。

接下来下面是两个数组练习题:

1.计算不同数字出现的次数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<stdio.h> int judge(int arr[], int length) { int i, j, count = 0; int arr1[10] = {0}; int arr2[10] = {0}; //找出不同的数,并放入数组arr1中 for(i = 0; i < length; i++) { int flag = 0; for(j = 0; j < length; j++) { if(arr[i] == arr1[j]) { flag = 1; break; } } if(flag == 0) { arr1[count] = arr[i]; count++; } } //统计不同数的个数,放到数组arr2中 for(i = 0; i < length; i++) { int count1 = 0; for(j = 0; j < length; j++) { if(arr1[i] == arr[j]) { count1++; } } arr2[i] = count1; } //遍历不同数出现的次数 for(i = 0; i < count; i++) { printf("%d出现了%d次n",arr1[i],arr2[i]); } printf("n"); return 0; } int main() { int arr[10] = {0},i = 0; printf("请输入1-100之间的整数:"); while(1) { scanf("%d",&arr[i]); if(arr[i] == 0) { break; } else { i++; } } judge(arr,10); return 0; }

2.判断数组中是否存在4个连续相同的数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<stdio.h> #define N 5 int i; void scan_arr(int arr[], int length) { for(i = 0; i < length; i++) { scanf("%d",&arr[i]); } } void judge(int arr[], int length) { int count = 0; for(i = 0; i < length-1; i++) { if(arr[i] == arr[i+1]){ count++; if(count >= 3) { break; } } else { count = 0; } } if(count >= 3) { printf("数组中有4个连续相同的数n"); } else { printf("数组中没有4个连续相同的数n"); } } int main() { int arr[5] = {0},i; printf("请输入5个整数:n"); scan_arr(arr,5); judge(arr,5); return 0; }

最后

以上就是火星上枕头最近收集整理的关于C语言入门12指针的全部内容,更多相关C语言入门12指针内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部