c程序设计语言 by K&R(二)指针与数组

2022/1/10 9:03:46

本文主要是介绍c程序设计语言 by K&R(二)指针与数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. c语言只有值传递,没有引用传递

  • 可通过指针交换
#include <stdio.h>
#include <stdlib.h>
void swap(int* a, int* b){
	int tmp = *b;
	*b = *a;
	*a = tmp;
}
int main(void) {
	int a = 2;
	int b = 3;
	swap(&a, &b);
	printf("%d %d\n", a, b);
	return 0;
}
  • 但以下代码在c++环境下才能运行
void swap(int& a, int& b){
	int tmp = b;
	b = a;
	a = tmp;
}
int main(void) {
	int a = 2;
	int b = 3;
	swap(a, b);
	printf("%d %d\n", a, b);
	return 0;

2. char s[]和 char* s是等价的

s是字符数组的起始地址

3. C语言不进行数组越界检查

arr[-1],arr[-2]表示arr[0]之前的两个元素

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	int c[2] = {0,0};
	printf("%d %d\n", c[-1], c[-2]);
	return 0;
}

输出:

32767 -502976128


这篇关于c程序设计语言 by K&R(二)指针与数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程