? ?xdm,今天在寫逆序函數(shù)的時候遇到了這樣一個問題——表達式必須包含指向?qū)ο蟮闹羔橆愋?,但他具?int"?原來問題出在這里...
? ?首先來看看題目
創(chuàng)建一個整型數(shù)組,完成對數(shù)組的操作
1.實現(xiàn)函數(shù)init()初始化數(shù)組為全0
2.實現(xiàn)print()打印數(shù)組的每個元素
3.實現(xiàn)reverse()函數(shù)完成數(shù)組元素的逆置
? 就在第三個函數(shù)的時候,我遇到了以下這樣的問題
? 一個簡單的逆序函數(shù)邏輯沒出錯,那一定是哪里輸入錯誤,通過警告和Fn+F10以及調(diào)試窗口排查終于找到了問題所在
? ?沒錯,就是在形參接受實參的時候少寫了一個【】導(dǎo)致的,具體原因是因為arr數(shù)組本質(zhì)是一個指針類型,指向的是首元素的地址,如果用int 來接收顯然不合適,以至于在引用下列定義的int類型的變量時候產(chǎn)生錯誤——表達式必須包含指向?qū)ο蟮闹羔橆愋?,但他具有類?int",解決的辦法也很簡單,代碼如下文章來源:http://www.zghlxwxcb.cn/news/detail-568518.html
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void reverse(int arr[], int sz)
{
int i = 0;
int left = 0;
int right = sz-1;
for (i = 0; i < sz / 2; i++)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
if (arr[left] == arr[right])
break;
}
}
void print(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
reverse(arr,sz);
print(arr, sz);
return 0;
}
? 好了,今天的分享就到這里,覺得有用的老鐵點贊加關(guān)注走一波,也希望各位老鐵越走越深,成為大佬?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-568518.html
到了這里,關(guān)于表達式必須包含指向?qū)ο蟮闹羔橆愋?,但他具有“int“?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!