#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int* sentence(int arr[3][3], int k);
int main()
{
int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
printf("请输入要查找的数字\n");
int k = 0;
scanf("%d", &k);
int* ret = sentence(arr,k);
if (ret == NULL)
{
printf("没找到");
}
else
{
printf("找到了: x= %d , y= %d\n", *ret , *(ret + 1));
printf("也就是: 第 %d 行,第 %d 列\n", *ret, *(ret + 1));
}
return 0;
}
int* sentence(int arr[3][3], int k)
{
int x = 0;
int y = 2;
while (x <= 2 && y>=0)
{
if (k > arr[x][y])
{
x++;
}
else if (k < arr[x][y])
{
y--;
}
else
{
int memory[2] = { x,y };
return memory;
break;
}
}
return NULL;
}
为什么两次打印相同的变量,结果却是不一样
看了内存,地址也没变
就是两个第一个printf打印以后,打印的变量就变了。