本文介绍: 而单独的的指针一个指针大小,即:64位操作系统中8个字节,32位操作系统中4个字节数组一个完整的整体可以看作一个指针a表示数组元素地址注解(图解非常详细)只有p3会正常输出2。

 下面,补充上次的程序,1完全使用指针方法.实现去掉空格

下面是程序示例

#include<stdio.h>
#include<stdlib.h&gt;

void delete_word(char* s) {
	while (*(s + 1) != '') {
		*s = *(s + 1);
		s++;
	}
	*s = ''; // 设置字符串结束符
}

int main() {
	char *a = (char *)malloc(128);
	char ch;
	int i = 0;
	while ((ch = getchar()) != EOF) {
		*(a + i++) = ch;
	}
	*(a + i) = ''; // 设置字符串结束char* begin = a;
	while (*a != '') {
		if (*a == ' ') {
			delete_word(a);
		}
		else {
			a++;
		}
	}
	printf("%sn", begin);

	free(begin); // 释放内存
	return 0;
}

 

2.指针数组的关系

#include<stdio.h&gt;
int main() {
	int a[5] = { 1,2,3,4,5 };
	int* b = a;
	for (int i = 0; i < 5; i++) {
		printf("%d ", *(b + i));
	}
	printf("n");
	return 0;
}

输出结果

1 2 3 4 5

 3.指针数组运算关系

#include<stdio.h&gt;
void f(int m[]) {
	printf("%dn", sizeof(m) / sizeof(m[0]));
}
int main() {
	int m[10] = { 0 };
	printf("%dn", sizeof(m) / sizeof(m[0]));
	f(m);
	return 0;
}

输出的结果

10
2

注解:

数组一个完整的整体,可以看作一个指针

而单独的的指针一个指针大小,即:64位操作系统中8个字节,32位操作系统中4个字节

思维训练

给你一段程序预测会输出什么

#include<stdio.h&gt;
int main() {
	int a[5] = { 1,2,3,4,5 };
	int* p1 = (int*)(&amp;a + 1);
	int* p2 = (int*)((int)a + 1);
	int* p3 = (int*)(a + 1);
	printf("%dn%dn%dn", p1[0], p2[0], p3[0]);
	return 0;
}

注解(图解非常详细)

&amp;a表示数字地址

a表示数组元素地址

输出结果

只有p3会正常输出2

原文地址:https://blog.csdn.net/T3604220939/article/details/134713037

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_20794.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注