diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp
index af28131..e94a9c2 100644
--- a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp
@@ -93,7 +93,7 @@
     const OffdeviceIntermediateDictPtNodeArray *ptNodeArray = &mRootPtNodeArray;
     for (size_t i = 0; i < codePoints.size();) {
         bool foundNext = false;
-        for (const auto ptNode : ptNodeArray->getPtNodeList()) {
+        for (const auto& ptNode : ptNodeArray->getPtNodeList()) {
             const CodePointArrayView ptNodeCodePoints = ptNode->getPtNodeCodePoints();
             if (codePoints[i] < ptNodeCodePoints[0]) {
                 continue;
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index 1dbec55..6f96a5a 100644
--- a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -141,7 +141,7 @@
     }
     const auto languageModelDictContent = mBuffers->getLanguageModelDictContent();
     for (size_t i = 1; i <= prevWordIds.size(); ++i) {
-        for (const auto entry : languageModelDictContent->getProbabilityEntries(
+        for (const auto& entry : languageModelDictContent->getProbabilityEntries(
                 prevWordIds.limit(i))) {
             const ProbabilityEntry &probabilityEntry = entry.getProbabilityEntry();
             if (!probabilityEntry.isValid()) {
@@ -516,7 +516,7 @@
     int ngramPrevWordsCodePoints[MAX_PREV_WORD_COUNT_FOR_N_GRAM][MAX_WORD_LENGTH];
     int ngramPrevWordsCodePointCount[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
     bool ngramPrevWordIsBeginningOfSentense[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    for (const auto entry : languageModelDictContent->exportAllNgramEntriesRelatedToWord(
+    for (const auto& entry : languageModelDictContent->exportAllNgramEntriesRelatedToWord(
             mHeaderPolicy, wordId)) {
         const int codePointCount = getCodePointsAndReturnCodePointCount(entry.getTargetWordId(),
                 MAX_WORD_LENGTH, ngramTargetCodePoints);
diff --git a/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
index ca8626e..ab11975 100644
--- a/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
+++ b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
@@ -80,7 +80,7 @@
         languageModelDictContent.setProbabilityEntry(wordId, &originalEntry);
     }
     std::unordered_set<int> wordIdSet(std::begin(wordIds), std::end(wordIds));
-    for (const auto entry : languageModelDictContent.getProbabilityEntries(WordIdArrayView())) {
+    for (const auto& entry : languageModelDictContent.getProbabilityEntries(WordIdArrayView())) {
         EXPECT_EQ(originalEntry.getFlags(), entry.getProbabilityEntry().getFlags());
         EXPECT_EQ(originalEntry.getProbability(), entry.getProbabilityEntry().getProbability());
         wordIdSet.erase(entry.getWordId());
